Collections
类:Java 中提供的一组静态方法,用于操作集合。常用方法:
1. 排序
Collections.sort(List<T> list)
- 对指定列表进行升序排序。
Arrays.asList
将一个数组转化为一个List集合
java
List<Integer> numbers = Arrays.asList(5, 2, 8, 1);
Collections.sort(numbers);
2. 查找
-
Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)
- 在已排序的列表中查找指定元素,返回其索引。
javaint index = Collections.binarySearch(numbers, 2); // 返回 1
3. 反转和洗牌
-
Collections.reverse(List<?> list)
- 反转列表中的元素顺序。
javaCollections.reverse(numbers);
-
Collections.shuffle(List<?> list)
- 随机打乱列表中的元素顺序。
javaCollections.shuffle(numbers);
4. 最大值和最小值
-
Collections.max(Collection<? extends T> coll)
- 返回集合中的最大元素。
javaint max = Collections.max(numbers);
-
Collections.min(Collection<? extends T> coll)
- 返回集合中的最小元素。
javaint min = Collections.min(numbers);
5. 频率
-
Collections.frequency(Collection<?> c, Object o)
- 计算指定元素在集合中出现的次数。
javaint freq = Collections.frequency(numbers, 2);
6. 替换
-
Collections.replaceAll(List<T> list, T oldVal, T newVal)
- 替换列表中所有的旧值为新值。
javaCollections.replaceAll(numbers, 2, 20);
7. 创建不可变集合
-
Collections.unmodifiableList(List<? extends T> list)
- 返回指定列表的不可变视图。
javaList<Integer> immutableList = Collections.unmodifiableList(numbers);
8. 单例集合
-
Collections.singleton(T o)
- 返回一个包含单个指定元素的不可变集合。
javaSet<Integer> singletonSet = Collections.singleton(1);
9. 空集合
-
Collections.emptyList()
- 返回一个空的不可变列表。
javaList<String> emptyList = Collections.emptyList();
10. 同步集合
-
Collections.synchronizedList(List<T> list)
- 返回线程安全的列表。
javaList<Integer> synchronizedList = Collections.synchronizedList(new ArrayList<>());
示例:
java
package ServletProjects;
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 2, 8, 1, 2));
Collections.sort(numbers);
System.out.println("排序后" + numbers);
Collections.shuffle(numbers);
System.out.println("打乱后 " + numbers);
int max = Collections.max(numbers);
int min = Collections.min(numbers);
System.out.println("最大值 " + max + ",最小值: " + min);
int freq = Collections.frequency(numbers, 2);
System.out.println("2的次序为: " + freq);
Collections.replaceAll(numbers, 2, 20);
System.out.println("替换后: " + numbers);
}
}