ColLections概述
Collections 是一个操作 Set、List 和 Map 等集合的工具类。
排序操作:
方法 |
作用 |
reverse(List) |
反转 List 中元素的顺序 |
shuffle(List) |
对 List 集合元素进行随机排序 |
sort(List) |
根据元素的自然顺序对指定 List 集合元素按升序排序 |
sort(List,Comparator) |
根据指定的 Comparator 产生的顺序对 List 集合元素进行排序 |
swap(List,int, int) |
将指定 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中 |
boolean replaceAll(List list,Object oldVal,Object newVal) |
使用新值替换 List 对象的所有旧值 |
提供了多个unmodifiableXxx()方法,该方法返回指定 Xxx的不可修改的视图。 |
添加
方法 |
作用 |
boolean addAll(Collection c,T... elements) |
将所有指定元素添加到指定 collection 中。 |
同步
方法 |
作用 |
Collections 类中提供了多个 synchronizedXxx() 方法, |
该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题: |
举例
public class CollectionsTest {
public static void main(String[] args) {
List list = Arrays.asList(45,43,65,6,43,2,32,45,56,34,23);
System.out.println(list);
//reverse 反转
Collections.reverse(list);
System.out.println(list);
//shuffle随机化
Collections.shuffle(list);
System.out.println(list);
//sort 升序排序
Collections.sort(list);
System.out.println(list);
//降序需要定制排序,sort(list l,comparator c)
//max获取最大值
System.out.println(Collections.max(list));
//max(list l,comparator c)定制比较获取最大值,是取list列表最右面的元素
//frequency获取元素出现了几次
int frequency = Collections.frequency(list,45);
System.out.println("出现了"+frequency+"次");
//copy赋值,注意复制之前确定newList的size大于老List的size
List newList = Arrays.asList(new Object[list.size()]);
Collections.copy(newList,list);
System.out.println(newList);
//unmodifiableList方法返回一个可读但不可修改的list
List unmodifiableList = Collections.unmodifiableList(newList);
//synchronizedList方法使arrayList变成线程安全的List,返回的list1是线程安全的
List list1 = Collections.synchronizedList(list);
}
}