1. 程式人生 > 實用技巧 >Java集合-Collection工具類

Java集合-Collection工具類

公眾號:菜雞幹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():返回一個空的,不可變的集合物件,此處集合可以是ListSet,Map
  • singletonXxx():返回一個包含指定物件的不可變集合物件,可以是List,Map
  • unmodifiableXxx():返回集合物件的不可變Map,此處集合可以是List,Set,Map

方法的引數為原有的集合物件,返回了一個不可變物件(原有物件的不可變版本)。