在 Java 里,Collections 是一个实用工具类,它位于 java.util 包下。该类提供了一系列静态方法,用于操作各种集合对象,例如 ListSetMap 等。以下是对其常用方法及作用的介绍:

排序操作

  • sort(List<T> list):该方法可对实现了 Comparable 接口的元素构成的列表进行升序排序。例如对 IntegerString 类型的列表排序。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(3);
        numbers.add(1);
        numbers.add(2);
        Collections.sort(numbers);
        System.out.println(numbers); // 输出: [1, 2, 3]
    }
}
  • sort(List<T> list, Comparator<? super T> c):可以依据指定的比较器对列表进行排序,这样就能灵活自定义排序规则。

查找和替换操作

  • binarySearch(List<? extends Comparable<? super T>> list, T key):在有序列表中采用二分查找法查找指定元素,若找到就返回其索引,反之则返回负数。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class BinarySearchExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        int index = Collections.binarySearch(numbers, 2);
        System.out.println(index); // 输出: 1
    }
}
  • replaceAll(List<T> list, T oldVal, T newVal):将列表中所有指定的旧元素替换成新元素。

同步控制

  • synchronizedList(List<T> list)synchronizedSet(Set<T> s)synchronizedMap(Map<K,V> m):分别用于将非线程安全的列表、集合和映射转换为线程安全的对象。在多线程环境下使用集合时,可保证线程安全。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SynchronizedListExample {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        List<Integer> synchronizedList = Collections.synchronizedList(list);
    }
}

反转和打乱操作

  • reverse(List<?> list):把列表中的元素顺序反转。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ReverseExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        Collections.reverse(numbers);
        System.out.println(numbers); // 输出: [3, 2, 1]
    }
}
  • shuffle(List<?> list):随机打乱列表中元素的顺序。

其他操作

  • max(Collection<? extends T> coll)min(Collection<? extends T> coll):分别用于找出集合中的最大元素和最小元素。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MaxMinExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        int max = Collections.max(numbers);
        int min = Collections.min(numbers);
        System.out.println("Max: " + max); // 输出: Max: 3
        System.out.println("Min: " + min); // 输出: Min: 1
    }
}

总的来说,Collections 工具类提供了丰富的方法,能极大地简化集合的操作,提高开发效率。