Collections

Collections

 Collections类是 Java 集合框架中的一个工具类,它提供了一系列静态方法,用于操作各种集合(如 List、Set、Map等)。

Collections常用方法
  1. 排序方法
    sort(List<T> list):用于对List集合进行自然排序,要求集合中的元素必须实现Comparable接口。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(3);
     numbers.add(1);
     numbers.add(2);
     Collections.sort(numbers);
    sort(List<T> list, Comparator<? super T> c):使用指定的比较器对 List 集合进行排序,适用于需要自定义排序规则的场景。
     List<Person> people = new ArrayList<>();
     people.add(new Person("Alice", 25));
     people.add(new Person("Bob", 20));
     people.add(new Person("Charlie", 30));
     // 按年龄升序排序
     Collections.sort(people, Comparator.comparingInt(Person::getAge));
  2. 查找方法
    binarySearch(List<? extends Comparable<? super T>> list, T key):使用二分查找算法在已排序的 List 中查找指定元素,要求 List 必须是已按自然顺序排序的。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(3);
     int index = Collections.binarySearch(numbers, 2);
    max(Collection<? extends T> coll) 和 min(Collection<? extends T> coll):分别用于返回集合中的最大元素和最小元素,要求集合中的元素必须实现Comparable接口。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(3);
     int max = Collections.max(numbers);
     int min = Collections.min(numbers);
  3. 反转
    reverse(List<?> list):用于反转List集合中元素的顺序。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(3);
     Collections.reverse(numbers);
  4. 打乱
    shuffle(List<?> list):用于随机打乱List集合中元素的顺序。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(3);
     Collections.shuffle(numbers);
  5. 同步包装方法
    synchronizedList(List<T> list)、synchronizedSet(Set<T> s) 和 synchronizedMap(Map<K,V> m):用于将非线程安全的集合转换为线程安全的集合。
     List<Integer> nonSyncList = new ArrayList<>();
     List<Integer> syncList = Collections.synchronizedList(nonSyncList);
  6. 不可变集合创建方法
    unmodifiableList(List<? extends T> list)、unmodifiableSet(Set<? extends T> s) 和 unmodifiableMap(Map<? extends K,? extends V> m):用于创建不可变的集合视图,对返回的集合进行修改操作会抛出UnsupportedOperationException。
     List<Integer> originalList = new ArrayList<>();
     originalList.add(1);
     List<Integer> unmodifiableList = Collections.unmodifiableList(originalList);
     try {
      // 会抛出 UnsupportedOperationException
      unmodifiableList.add(2);
     } catch (UnsupportedOperationException e) {
      System.out.println("不支持修改操作");
     }
  7. 填充
    fill(List<? super T> list, T obj):用于将List集合中的所有元素替换为指定的对象。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(3);
     Collections.fill(numbers, 0);
  8. 替换
    replaceAll(List<T> list, T oldVal, T newVal):用于将 List 集合中所有指定的旧元素替换为新元素。
     List<Integer> numbers = new ArrayList<>();
     numbers.add(1);
     numbers.add(2);
     numbers.add(1);
     Collections.replaceAll(numbers, 1, 0);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容