公众号:菜鸡干Java
排序操作
Collections
提供了如下方法用于对List
集合排序:
- void reverse(List list):反转顺序
- void shuffle(List list):随机排序
- void sort(List list):按升序排序
- void sort(List list ,Comparator):根据
Comparator
的顺序指定排序 - void swap(List list,int i,int j):指定元素之间交换
- void rotate(List list,int d):当d为正时,将集合后d个元素整体移到前面;为负时,将前d个元素整体移到后面
查找替换
Collections
还提供了如下方法用于查找和替换元素:
- int binarySearch(List list,Object o):二分搜索指定
List
集合,获得对象的索引,前提是集合是有序的。 - Object max(Collection c):根据自然排序,返回最大元素
- Object max(Collection c,Comparator comp):根据指定排序,返回集合中的最大元素
- Object min(Collection c):根据自然排序,返回最小元素
- Object min(Collection c,Comparator comp):根据指定排序,返回集合中的最小元素
- void fill(List list,Object o):使用o替换集合中所有元素
- int frequency(Collection c,Object o):返回集合中o出现的次数
- int indexOfSubList(List list,List sublist):返回子List在集合中第一次出现的位置,若没有则返回-1
- int lastIndexOfSubList(List list,List sublist):返回子List在集合中最后一次出现的位置,若没有则返回-1
- boolean replaceAll(List list,Object old,Object new):使用一个新元素替换所有指定旧元素
同步控制的线程安全
Collections
工具类提供了多个synchronizedXxx()
类方法,该方法将指定集合包装成线程同步的集合。在Map集合中,线程不安全的有HashSet
,HashMap
,TreeMap
,TreeSet
,ArrayList
,ArrayDeque
,LinkedList
等,现在可以用该方法包装成线程安全的。
Collection c = Collections.synchronizedCollection(new ArrayList());
List a = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map m = Collections.synchronizedMap(new HashMap());
将创建的对象传入synchronizedXxx()
方法,会返回线程安全的List
,Map
,Set
集合对象。
设置不可变集合
Collections
提供以下三个类方法来返回一个不可变集合:
- emptyXxx():返回一个空的,不可变的集合对象,此处集合可以是
List
,Set
,Map
。 - singletonXxx():返回一个包含指定对象的不可变集合对象,可以是
List
,Map
。 - unmodifiableXxx():返回集合对象的不可变
Map
,此处集合可以是List
,Set
,Map
。
方法的参数为原有的集合对象,返回了一个不可变对象(原有对象的不可变版本
)。