Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎样使用 Collections 完成常见集合操作?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

Collections 是工具类,不是“一个函数”。常用静态方法包括 sort、reverse、shuffle、binarySearch、frequency、min/max,以及同步或不可修改包装。使用前要核对方法是否修改传入集合、是否要求有序、空输入怎样处理;返回结果不一定是独立副本。

讲清原理

sort 排序,reverse 反转当前次序,shuffle 打乱列表;这三种操作的用途不同,反转未排序列表不会让它自动降序。binarySearch 要求列表按相同规则事先有序;frequency 则统计相等元素的出现次数。

要保留原顺序,可先复制到可修改列表再操作。像 List.of 这样的不可修改列表不能直接拿来原地排序;同步包装也不取消迭代时的锁要求。工具方法仍受输入契约约束。

例子与易错点

Java 21 的 main 片段:

var values = new java.util.ArrayList<>(java.util.List.of(3, 1, 3, 2));
java.util.Collections.sort(values);
System.out.println(values);
System.out.println(java.util.Collections.frequency(values, 3));
System.out.println(java.util.Collections.binarySearch(values, 2));
java.util.Collections.reverse(values);
System.out.println(values);

输出 [1, 2, 3, 3]、2、1、[3, 3, 2, 1]。反转后若继续用自然升序二分查找,前提已经不成立;应按当前排序规则调用或重新整理。

相关题:第 4 题、第 8 题、第 11 题、第 16 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。