怎样使用 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 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。