首页 > 代码库 > 操作集合的工具类:Collections

操作集合的工具类:Collections

数组有工具类 Arrays,集合同样有可操作 Collection 和 Map 的工具类:Collections
  1. // Collections 工具类可操作的对象:Collection 和 Map
  2. public class TestCollections {
  3. public static void main(String[] args) {
  4. List list = new ArrayList();
  5. list.add("s");
  6. list.add("b");
  7. list.add("j");
  8. list.add("n");
  9. list.add("a");
  10. System.out.println(list);// [s, b, j, n, a]
  11. // -----------------关于排序-----------------
  12. // 1.反转指定列表中元素的顺序:void reverse(List list);
  13. Collections.reverse(list);
  14. System.out.println(list);// [a, n, j, b, s]
  15. // 2.使用默认随机源对指定列表进行置换:void shuffle(List list);
  16. // 3.根据元素的自然顺序对指定列表按升序进行排序,列表中的所有元素都必须实现 Comparable
  17. // 接口。此外,列表中的所有元素都必须是可相互比较的:void sort(List list);
  18. Collections.sort(list);
  19. System.out.println(list);// [a, b, j, n, s]
  20. // 4.根据指定比较器产生的顺序对指定列表进行排序,此列表内的所有元素都必须可使用指定比较器相互比较:
  21. // void sort(List list,Comparator c);
  22. // 参见 TreeSet 的定制排序
  23. // 5.在指定列表的指定位置处交换元素:void swap(List list,int i,int j);
  24. Collections.swap(list, 0, 2);
  25. System.out.println(list);// [j, b, a, n, s]
  26. // -----------------关于查找、替换-----------------
  27. // 1.根据元素的自然顺序,返回给定 collection 的最大元素:T max(Collection coll);
  28. System.out.println(Collections.max(list));// s
  29. // 2.根据指定比较器产生的顺序,返回给定 collection 的最大元素:
  30. // T max(Collection coll,Comparator comp);
  31. // 3.返回指定 collection 中等于指定对象的元素数:int frequency(Collection c,Object o);
  32. list.add("a");
  33. System.out.println(list);// [j, b, a, n, s, a]
  34. System.out.println(Collections.frequency(list, "a"));// 2
  35. // 4.将所有元素从一个列表复制到另一个列表:void copy(List dest,List src);
  36. // 注意:目标列表(dest.size)的长度至少必须等于源列表(src.size)
  37. List destList = Arrays.asList(new Object[list.size()]);// 或者大于list.size()
  38. Collections.copy(destList, list);
  39. System.out.println(destList);// [j, b, a, n, s, a]
  40. // 5.使用另一个值(newVal)替换列表中出现的所有某一指定值(oldVal):
  41. // boolean replaceAll(List list,T oldVal,T newVal);
  42. System.out.println(Collections.replaceAll(destList, "a", "o"));// true
  43. System.out.println(destList);// [j, b, o, n, s, o]
  44. // -----------------关于同步控制-----------------
  45. // 举例(详见API):返回指定列表支持的同步(线程安全的)列表:List synchronizedList(List list);
  46. List synList = Collections.synchronizedList(list);
  47. }
  48. }

操作集合的工具类:Collections