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

Collection 和 Collections 有什么区别?

查看完整题解

参考回答

直接回答

Collection 是描述一组元素的接口,规定 add、remove、iterator 等能力;Collections 是工具类,提供排序、查找、包装等静态方法。List、Set、Queue 属于 Collection 这一支;Map 单独定义键值语义。前者规定容器能力,后者提供操作工具。

讲清原理

接口变量可以指向不同集合实现,例如用 Collection 接收 ArrayList,调用方只使用共同能力。Collections 的方法则以某个集合为参数工作,不负责把自己变成一个容器。

工具也有适用前提:sort 接收 List,排序要求列表支持相应修改;binarySearch 要求列表已经按同样规则有序。不是把任何 Collection 交给任何工具方法都能使用。

例子与易错点

Java 21 的 main 片段:

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

输出 [1, 2, 3]。这里 ArrayList 保存数据,List 规定可用能力,Collections.sort 执行排序。若 values 实际来自 List.of,排序会因不可修改而失败;“工具类方法”不意味着它一定返回新集合,也可能直接修改传入对象。

相关题:第 1 题、第 16 题、第 46 题。

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

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