集合接口的方法
Collection接口
Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集合
Collection接口方法
- 添加
- add(Object obj)
- addAll(Collection coll)
- 获取有效元素的个数
- int size()
- 清空集合
- void clear()
- 是否是空集合
- boolean isEmpty()
- 是否包含某个元素
- boolean contains(Object obj):调用元素的equals方法来判断是否是同一个对象
- boolean containsAll(Collection c):调用元素的equals方法比较两个集合的元素
- 删除
- boolean remove(Object obj):通过元素的equals方法判断是否是要删除的那个元素,只会删除找到的第一个元素
- boolean removeAll(Collection coll):取当前集合的差集
- 取两个集合的交集
- boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
- 集合是否相等
- boolean equals(Object obj)
- 转换成对象数组
- Object[] toArray()
- 获取集合对象的哈希值
- hashCode()
- 遍历
- iterator():返回迭代器对象,用于集合遍历
遍历
Iterator接口
- 集合对象每次调用iterator()方法都得到一个全新的迭代器对象(默认游标都在集合的第一个元素之前)
- 内部方法
- hasNext():判断是否还有下一个元素
- next():①指针下移 ②将下移以后集合位置上的元素返回
- remove():在遍历过程中删除元素
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
Object obj = iterator.next();
if (obj.equals("abc")){
iterator.remove();
}
}
foreach
内部调用了iterator迭代器
//for(集合元素的类型 局部变量 : 集合对象)
for (Object arr : arrayList){
System.out.println(arr);
}
List接口
- void add(int index, Object ele):在index位置插入ele元素
- boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
- Object get(int index):获取指定index位置的元素
- int indexOf(Object obj):返回obj在集合中首次出现的位置
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
- Object remove(int index):移除指定index位置的元素,并返回此元素
- Object set(int index, Object ele):设置指定index位置的元素为ele
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
Set
无序性:不等于随机性。存储的数据在底层数组中并非按照数组索引的顺序添加,而是根据数据的哈希值决定的。
不可重复性:保证添加的元素按照equals()判断时,不能返回true.即:相同的元素只能添加一个。
添加元素的过程:以HashSet为例:
-
我们向HashSet中添加元素a,首先调用元素a所在类的hashCode()方法,计算元素a的哈希值,
此哈希值接着通过某种算法计算出在HashSet底层数组中的存放位置(即为:索引位置),判断 -
数组此位置上是否已经有元素:
如果此位置上没有其他元素,则元素a添加成功。
如果此位置上有其他元素b(或以链表形式存在的多个元素),则比较元素a与元素b的hash值:- 如果hash值不相同,则元素a添加成功。
如果hash值相同,进而需要调用元素a所在类的equals()方法:- equals()返回true,元素a添加失败
equals()返回false,则元素a添加成功。
- equals()返回true,元素a添加失败
- 如果hash值不相同,则元素a添加成功。
-
存放在Set容器里的对象,对应的类一定要重写equals()和hashCode(Object obj)方法,以实现对象相等规则
- 添加、删除、修改操作:
Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
void putAll(Map m):将m中的所有key-value对存放到当前map中
Object remove(Object key):移除指定key的key-value对,并返回value
void clear():清空当前map中的所有数据 - 元素查询的操作:
Object get(Object key):获取指定key对应的value
boolean containsKey(Object key):是否包含指定的key
boolean containsValue(Object value):是否包含指定的value
int size():返回map中key-value对的个数
boolean isEmpty():判断当前map是否为空
boolean equals(Object obj):判断当前map和参数对象obj是否相等 - 元视图操作的方法:
Set keySet():返回所有key构成的Set集合
Collection values():返回所有value构成的Collection集合
Set entrySet():返回所有key-value对构成的Set集合

浙公网安备 33010602011771号