Java(十三)集合类(2)
程序员文章站
2022-10-03 15:14:39
集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。一、lection接口由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合与Set集合是通用的。方法功能描述add(E e)将指定的对象从该集合中移除remove(Object o)将指定的对象从该集合中移除isEmpty()返回boolean值,用于判断当前集合是否为空iterator()返回在....
- 集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。
一、lection接口
- 由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合与Set集合是通用的。
方法 | 功能描述 |
---|---|
add(E e) | 将指定的对象从该集合中移除 |
remove(Object o) | 将指定的对象从该集合中移除 |
isEmpty() | 返回boolean值,用于判断当前集合是否为空 |
iterator() | 返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象 |
size() | 返回int型值,获取该集合中元素的个数 |
例 在项目中创建Muster,在主方法中实例化集合对象,并向集合中添加元素,最后将集合中的对象以String形式输出。
import java.util.*;//导入java.util包,其他实例都要添加该语句
public class Muster{ //创建Muster类
public static void main(String args[]){
Collection<String>list=new ArrayList<>();//实例化集合类对象
list.add("a");//向集合添加数据
list.add("b");
list.add("c");
lterator<String>it=list.iterator();//创建迭代器
while(it.hasNext()){//判断是否有下一个元素
String str=(String)ut.next();//获取集合中的元素
System.out.println(str);
}
}
}
结果如下:
a
b
c
注意:Iterator的next()方法返回的是Object。
二、List集合
List集合包括List接口以及List接口的所有实现类。List集合中的允许重复,各元素的顺序就是对象插入的顺序。类似Java数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。
- 语法
1、 get(int index):获取指定索引位置的元素。
2、set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。
List接口的实现类
- ArrayList 类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问;点是向指定的索引位置插入对象或删除对象的速度较慢。
- LinkedList 类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较高;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较低。
分别通过ArrayList、LinkedList类实例化List集合
List<E>list =new ArrayList<>();
List<E>list2=new LinkedList<>();
E是合法的java数据类型。如果集合中的元素为字符串类型,那么E可以修改为String。
注意:与数组相同,集合的索引也是从0开始。
三、Set集合
Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中,但Set集合中不能包含重复对象。Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含Collection接口的所有方法。
注意:Set 的构造有一个约束条件,传入的Collection对象不能有重复值,必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true,则会出现一些问题。
- Set接口常用的实现类有HashSet类与TreeSet类。
1、HashSet 类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。
2、TreeSet 类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此,TreeSet类实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较起递增排序,即可以通过比较器对用TreeSet类实现的Set集合中的对象进行排序。TreeSet类新增的方法如表(下)。
方法 | 功能描述 |
---|---|
first() | 返回此Set中当前第一个(最低)元素 |
last() | 返回此Set中当前最后一个(最高)元素 |
comparator() | 返回对此Set中的元素进行排序的比较器。如果此Set使用自然顺序,则返回null |
headSet(E toElement) | 返回一个新的Set集合,新集合是toElement(不包含)之前的所有对象 |
subSet(E fromElemt,E fromElement) | 返回一个新的Set集合,是fromElement(包含)对象与fromElement(不包含)对象之间的所有对象 |
tailSet(E fromElement) | 返回一个新的Set集合,新集合包含对象fromElement(包含)之后的所有对象 |
本文地址:https://blog.csdn.net/qq_47239483/article/details/107581783