天天看點

Colletions類的工具類 備忘

集合工具類之Colletions

  1. sort(List): 按升序排序。 通過把List轉換成數組後,通過Arrays.sort進行排序,然後把排好序的數組一一指派給List。

sort(List, Comparator c): 自定義排序。

  1. binarySearch(List list, T key) 在數組中進行二分法查找。

binarySearch(List list, T key, Compartor c), 自定義元素的比較器。

  1. reverse(List list) : 對集合資料進行反轉。如果集合大小小于 18或者集合實作了RandomAccess接口,則直接收尾交換向中間收縮交換。否則通過首尾疊代器交換值。

public static void reverse(List<?> list) {

int size = list.size();

if (size < REVERSE_THRESHOLD || list instanceof RandomAccess) {

for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j–)

swap(list, i, j);

} else {

// instead of using a raw type here, it’s possible to capture

// the wildcard but it will require a call to a supplementary

// private method

ListIterator fwd = list.listIterator();

ListIterator rev = list.listIterator(size);

for (int i=0, mid=list.size()>>1; i<mid; i++) {

Object tmp = fwd.next();

fwd.set(rev.previous());

rev.set(tmp);

}

}

}

  1. shuffle(List list) : 對集合進行随機排序。适用于洗牌等動作,随機把集合打亂。 如果集合大小小于5或者實作了RandomAccess接口的集合,,直接循環list随機設定。否則把list轉換成數組進行随機設定,再轉換成集合。
  2. fill(List list, T val): 對集合中的所有item值替換為val。如果集合大小小于5或者實作了RandomAccess接口的集合,直接循環list設定值, 否則用疊代器進行設定。
  3. copy(List dest, list src) : 拷貝數組。從src數組拷貝到dest數組。
  4. min(Collection T) : T, 從數組中擷取最小的元素。

    min(Collection T, Comparator comp ) T : 自定義比較器

  5. max(Collection T): T, 從數組中擷取最大的元素

    max(Collection T, Comparator, comp) T: 自定義比較器

  6. rotate(List list, int distance) , 把list中的元素移動distance的位置,當distance為正數時,向前移動distance步。是負數時,向後移動distance步。
  7. replaceAll(List list, T oldVal, T newVal), 把list中是oldVal的item值改成newVal.
  8. indexOfSubList(List source, List target): 在source List 查找第一次target出現的位置。
  9. lastIndexOfSubList(List source, List target): 在source List 從後往前查找第一次target出現的位置。
  10. frequency(Collection c, Object key): int , 在集合中統計key出現的次數。
  11. addAll(Collection c, T… elements): boolean, 把元素添加到c.
  12. list(Enumeration e):ArrayList, 把集合轉換成ArrayList.
  13. asLifoQueue(Deque deque): 把deQueue轉成後進先出queue.
  14. unmodifiableXXX(XXX c): 傳回不能修改的集合。
  15. synchronizedXXX(XXX c): 傳回同步的集合。
  16. emptyXXX(),傳回空的集合XXX, 這些集合都是Collections定義的集合。

繼續閱讀