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

怎样从访问能力理解集合框架的基础接口?

查看完整题解

参考回答

直接回答

可以先问数据怎样使用:逐项遍历看 Iterable,管理一组元素看 Collection,按位置访问看 List,唯一成员看 Set,等待处理看 Queue,两端操作看 Deque,键值对应看 Map。Java 21 的 Sequenced 系列补充首尾及反向视图能力,不能用旧版接口名单替代当前结构。

讲清原理

这些接口表达不同契约,并非每个都拥有其他接口的能力。Set 不提供 get(index),Map 的一次 put 接收键和值而非一个普通元素;Iterator 则仅表示一次遍历的当前位置。

Java 21 中,List 与 Deque 都扩展 SequencedCollection;SequencedSet 结合 Set 与有序相遇语义,SequencedMap 在 Map 上提供对应能力。遇到 SortedSet、SortedMap,还要继续区分“按比较规则排序”和“有明确相遇顺序”。

例子与易错点

如果某方法只需依次发送通知,接收 Iterable 通常已能表达需求;若要通过用户编号更新资料,Map 更贴合。一开始就要求 ArrayList,会把调用方无故绑到一个实现。

接口中的修改操作可能是可选操作,具体对象也可能拒绝 null。用接口解耦仍需要清楚的前置条件,不能把“同一接口”理解成所有实现有完全相同的代价和限制。

相关题:第 1 题、第 9 题、第 15 题、第 18 题。

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

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