企业网站建设公司网络服务网站开发 外包 哪家
在Java中,java.util.Collections 是一个工具类,提供了大量静态方法用于操作或返回集合(如List、Set、Map等)。以下是常用的API分类整理:
1. 排序与顺序操作
-
sort(List<T> list)
对List进行自然顺序排序(元素需实现Comparable接口)。List<Integer> list = Arrays.asList(3, 1, 2); Collections.sort(list); // [1, 2, 3] -
sort(List<T> list, Comparator<? super T> c)
自定义排序规则。Collections.sort(list, (a, b) -> b - a); // 降序 -
reverse(List<?> list)
反转列表顺序。Collections.reverse(list); // [2, 1, 3] -
shuffle(List<?> list)
随机打乱列表顺序(常用于洗牌算法)。
2. 查找与极值
-
binarySearch(List<? extends Comparable<? super T>> list, T key)
二分查找(列表必须已排序)。int index = Collections.binarySearch(list, 2); // 返回索引 -
max(Collection<? extends T> coll)/min(...)
返回集合中的最大/最小值(自然顺序或通过Comparator)。
3. 不可变集合(安全封装)
-
unmodifiableXxx()
返回不可变集合视图(如unmodifiableList、unmodifiableSet),修改会抛异常。List<String> unmodifiable = Collections.unmodifiableList(originalList); -
singleton(T o)/emptyList()/emptySet()
返回单元素或空集合(不可变)。
4. 同步控制(线程安全)
synchronizedXxx()
返回线程安全的集合包装(如synchronizedList、synchronizedMap)。List<String> syncList = Collections.synchronizedList(new ArrayList<>());
5. 填充与替换
-
fill(List<? super T> list, T obj)
用指定对象填充所有元素。Collections.fill(list, 0); // [0, 0, 0] -
replaceAll(List<T> list, T oldVal, T newVal)
替换所有匹配元素。
6. 其他实用方法
-
frequency(Collection<?> c, Object o)
统计元素出现次数。int count = Collections.frequency(list, "Java"); -
disjoint(Collection<?> c1, Collection<?> c2)
检查两个集合是否无交集。 -
addAll(Collection<? super T> c, T... elements)
批量添加元素到集合。
注意事项
- 性能:部分方法(如
sort)会修改原集合,需注意副作用。 - 线程安全:
synchronizedXxx()是粗粒度锁,高并发场景推荐用ConcurrentHashMap等并发集合。
