排序操作
- void reverse(List list)
反转list中元素的顺序,[2, 3, 1, 4]-> [4, 1, 3, 2] - void shuffle(List list)
随机排序,每次结果不同 - void sort(List list)
根据元素自然顺序按升序排序 - void sort(List list, Comparator c)
根据comparator产生的顺序进行排序 - void swap(List list, int i, int j)
将i处元素和j处元素进行交换 - void rotate(List list, int distance)
distance为正数,将list后distance个元素整体移到前面;distance为负数,将list前distance个元素整体移到后面。不会改变集合长度
查找、替换操作
- int binarySearch(List list, Object key)
使用二分搜索法搜索有序list(必须有序),返回key对应得索引 - Object max(Collection coll)
根据元素的自然顺序,返回最大元素 - Object max(Collection coll, Comparator comp)
根据comp比较,返回最大元素 - Object min(Collection coll)
根据元素的自然顺序,返回最小元素 - Object min(Collection coll, Comparator comp)
根据comp比较,返回最小元素 - void fill(List list, Object obj)
使用obj替换list的所有元素 - int frequency(Collection coll, Object obj)
返回obj在coll中出现次数 - int indexOfSubList(List sorce, List target)
返回soruce在target中第一次出现的位置索引,没有返回-1 - int lastIndexOfSubList(List sorce, list target)
返回soruce在target中最后一次出现的位置索引,没有返回-1 - boolean replaceAll(List list, Object oldVal, Object newVal)
newVal替换list中的所有oldVal
同步控制
提供了多个synchronizedXxx()方法,将HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap和TreeMap等不安全集合包装成线程安全的同步集合
Collection c = Collections.synchronizedCollection(new ArrayList());
List lsit = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map m = Collections.synchronizedMap(new HashMap());
设置不可变集合
Collectinos 提供下面三类方法返回一个不可变集合(只读):
-
emptyXxx()
返回一个空的、不可变集合,可以是List、SortedSet、Map、SortedMap等集合 -
singletonXxx(E e)
返回一个只包含一个元素的、不可变集合,可以是List、Map -
unmodifiableXxx(E e)
返回集合的不可变视图,可以是List、Set、SortedSet、Map、SortedMap等集合
java 9 新增不可变集合
声明后不能添加和删除元素(只读)
Set、List、Map的of()方法
Set set = Set.of("a","b","c");
List list = List.of(1,2,3);
//包含3个key-value对的map集合
Map map = Map.of("语文",89, "数学",99, "英语",88);
//用Map.entry()方法显式构建key-value对
Map map2 = Map.ofEntries(Map.entry("语文",89), Map.entry("数学",99), Map.entry("英语",88));