Collection方法
add(E obj) // 添加元素对象到当前集合中
addAll(Collection other) // 添加other集合中的所有元素对象到当前集合中
int size() // 获取集合中元素的数量
boolean isEmpty() // 判断集合是否为空
boolean contains(Object obj) // 判断当前集合中是否存在一个与obj对象equals返回true的元素
boolean containsAll(Collection coll) // 判断coll集合中是否都否存在与当前集合中
boolean equals(Object obj) // 判断当前集合是否与obj相等
void clear() // 清空集合元素
boolean remove(Object obj) // 从当前集合中删除第一个找到的与obj对象equals返回true的元素
boolean removeAll(Collection coll) // 从当前集合中删除所有与coll集合中相同的元素
boolean retainAll(Collection coll) 从当前集合中删除两个集合中不同的元素,使得当前集合仅保留与coll集合中的元素相同的元素,即当前集合仅保留两个集合的交集
Object[] toArray() 返回包含当前集合中所有元素的数组
hashCode() 返回集合对象的哈西值
iterator() // 返回迭代器对象,用于集合遍历
集合与数组的转换
集合转数组
toArray()
数组转集合
List list = Arrays.asList(Object... a);
List list = Arrays.asList("aa", "bb");
向Collection中添加元素的要求
要求元素所属的类一定要重写equals()方法
因为Collection相关的方法(contains()/remove()等)在使用时,会调用equals()方法
迭代器Iterator
用来遍历集合元素
方法
next() // 指针下移,将下移以后集合位置上的元素返回,如果超出了集合中元素的长度,会报错
hasNext() // 判断是否还有下一个元素
使用
public void test() {
Collection coll = new ArrayList();
Iterator iterator = coll.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
遍历集合
for (要遍历的集合或数组元素的类型 临时变量 : 要遍历的集合或数组变量) {
操作临时变量的输出
}
底层使用的仍然是迭代器
不能修改集合中的元素
Collections工具类
操作Set、Map、List等集合的工具类
reverse(List) // 反转List中元素的顺序
shuffle(List) // 对List集合元素进行随机排序
sort(Lsit) // 根据元素的自然顺序对指定List集合按升序排序
sort(List, Comparator) // 根据指定Comparator产生的顺序指定List集合按排序
swap(List, int i, int j) // 将指定List集合中的i处元素和j处元素进行交换
Object max(Collection) // 根据元素的自然顺序,返回给定集合的最大元素
Object max(Collection, Comparator) // 根据Comparator指定的顺序,返回给定集合的最大元素
Object min(Collection) // 根据元素的自然顺序,返回给定集合的最小元素
Object min(Collection, Comparator) // 根据Comparator指定的顺序,返回给定集合的最小元素
int binarySearch(List list, T key) // 在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且必须是可比较大小的,即支持自然排序的。而且集合也事先必须是有序的,否则结果不确定
int binarySearch(List list, T key, Comparator c) // 在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且集合也事先必须按照c比较器规则进行排序过的,否则结果不确定
int frequency(Collection c, Object o) // 返回指定集合中指定元素的出现次数
void copy(List dest, List src) // 将src中的内容复制到dest中, dest的size不能小于src的size
boolean replaceAll(List list, Object oldVal, Object newVal) // 使用newVal替换List对象的所有oldVal
提供了多个unmodifiableXxx()方法,该方法返回指定Xxx的不可修改的视图,得到的集合对象只能查询,不能写入
boolean addAll(Collection c, T... elements) // 将所有指定元素添加到指定collection中
提供了多个synchronizedXxx() 该方法可使指定集合包装成线程同步的集合,从而可以实现线程安全