Java集合-Collection工具類
阿新 • • 發佈:2020-10-13
公眾號:菜雞幹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()
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
。
方法的引數為原有的集合物件,返回了一個不可變物件(原有物件的不可變版本
)。