一、集合工具类Collections

Java集合框架中提供了一个操作Set、List和Map等集合的工具类Collections
在Collections中提供了很多static静态方法,帮我们去做:排序,……

  1. package com.woniuxy.java22.study;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.Comparator;
  6. import java.util.List;
  7. public class ColleactionsStudy {
  8. public static void main(String[] args) {
  9. // TODO Auto-generated method stub
  10. // study01();
  11. study02();
  12. }
  13. private static void study02() {
  14. // TODO Auto-generated method stub
  15. List<Integer> datas = new ArrayList<Integer>();
  16. Collections.addAll(datas, 56,78,45,23,89,45,78,89);
  17. System.out.println(datas);
  18. //升序(默认)
  19. Collections.sort(datas);
  20. System.out.println(datas);
  21. //降序(方式一) Collections.reverseOrder();返回的是当前集合默认采用的比较器的 反比较器
  22. // Comparator<Integer> ro = Collections.reverseOrder();
  23. // Collections.sort(datas, ro);
  24. // System.out.println(datas);
  25. //降序(方式二)
  26. Collections.reverse(datas);
  27. System.out.println(datas);
  28. //用于集合中 交换元素的位置(4,5代表元素的下标)
  29. Collections.swap(datas, 4, 5);
  30. System.out.println(datas);
  31. //返回一个新的不可改变内容的集合
  32. // List<Integer> newDatas = Collections.unmodifiableList(datas);
  33. // newDatas.add(89);//如果改变这行代码,将抛出UnsupportedOperationException
  34. // System.out.println(newDatas);
  35. //返回一个线程安全的集合(将不安全变为安全)
  36. List<Integer> newDatas02 = Collections.synchronizedList(datas);
  37. System.out.println(newDatas02);
  38. }
  39. private static void study01() {
  40. // TODO Auto-generated method stub
  41. List<String> datas = new ArrayList<String>();
  42. // datas.add("a");
  43. // datas.add("b");
  44. // datas.add("c");
  45. // datas.add("d");
  46. // datas.add("e");
  47. // datas.add("f");
  48. //
  49. //将元素添加到集合中去
  50. Collections.addAll(datas, "a","b","c","b","e","f");
  51. System.out.println(datas.size());
  52. //从集合中查找某一个元素,所在的下标
  53. System.out.println(Collections.binarySearch(datas, "e"));
  54. //返回一个线程安全的列表
  55. System.out.println(Collections.checkedList(datas, String.class));
  56. //Collections.checkedMap 同理
  57. //Collections.checkedSet 同理
  58. List<String> newList = new ArrayList<String>();
  59. Collections.addAll(newList, "wq","as","ui","io","po","nm","rt","er");
  60. //完成集合之间的元素覆盖(目标集合元素的个数 > 源集合中元素的个数)
  61. Collections.copy(newList,datas);
  62. System.out.println(newList);
  63. //判断2个集合中,是否存在相同元素
  64. System.out.println(Collections.disjoint(newList,datas));
  65. //将集合中所有的元素,使用ABCD进行替换
  66. // Collections.fill(newList, "ABCD");
  67. System.out.println(newList);
  68. //返回集合中,某一个元素在集合中出现的次数
  69. System.out.println(Collections.frequency(newList, "ABCD"));
  70. //判断一个集合,在例外一个一个集合中首次出现的位置
  71. System.out.println(Collections.indexOfSubList(newList, datas));
  72. //返回集合中 最大的元素
  73. System.out.println(Collections.max(datas));
  74. //返回集合中 最小的元素
  75. System.out.println(Collections.min(datas));
  76. //将集合中 中b 全部替换为 大波
  77. System.out.println(Collections.replaceAll(datas, "b", "大波"));
  78. System.out.println("反转之前:" + datas);
  79. //将集合中的元素,进行顺序反转
  80. Collections.reverse(datas);
  81. System.out.println("反转之后:" + datas);
  82. }
  83. }

二、数组工具类Arrays

Array 叫数组,Arrays叫数组的工具类,它同样提供很多的static方法

  1. package com.woniuxy.java22.study;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. public class ArraysStudy {
  5. public static void main(String[] args) {
  6. // TODO Auto-generated method stub
  7. String[] strs = {"张三","李四","王五","赵六","田七","王八","啤酒"};
  8. //将数组转换为List集合(不可改变内容)
  9. List<String> datas = Arrays.asList(strs);
  10. System.out.println(datas);
  11. // datas.add("赵六");// 抛出UnsupportedOperationException
  12. // System.out.println(datas);
  13. //从数组中检索元素所在的下标(二分查找法)
  14. System.out.println(Arrays.binarySearch(strs, "李四"));
  15. //将一个数组复制成一个新的数组
  16. String[] newArr = Arrays.copyOf(strs, 10);
  17. //打印输出数组的具体内容
  18. System.out.println(Arrays.toString(newArr));
  19. //将某一个数组,按照指定范围进行复制[2 5)
  20. String[] newArr02 = Arrays.copyOfRange(strs, 2, 5);
  21. System.out.println(Arrays.toString(newArr02));
  22. //用来比较2个数组,是否内容相同
  23. System.out.println(Arrays.equals(newArr, newArr02));
  24. //将指定数组的所有元素,使用 张老师 进行替换
  25. Arrays.fill(newArr02, "张老师");
  26. System.out.println(Arrays.toString(newArr02));
  27. //对数组进行升序排序(默认)
  28. Integer[] nums = {12,56,23,12,456,223,12,1243,78};
  29. Arrays.parallelSort(nums);//Arrays.sort(nums);
  30. System.out.println(Arrays.toString(nums));
  31. //自定义排序规则,完成降序排列
  32. Arrays.parallelSort(nums,new ArrayComparator());
  33. System.out.println(Arrays.toString(nums));
  34. }
  35. }