Java集合常见面试题总结(上)
集合面试上篇通常覆盖体系结构、接口继承关系,以及 List/Set/Map 最常用实现的差异——这是后续源码题的地图。
核心概念
Collection 单列:List 有序可重复、Set 不重复、Queue 队列。Map 双列键值对,不继承 Collection。经典实现:ArrayList/LinkedList、HashSet/TreeSet、HashMap/LinkedHashMap/TreeMap。迭代器 Iterator 与 fail-fast:modCount 检测并发修改。
关键机制与实践
选型速记:随机访问、尾部增删 → ArrayList;头尾插删、无随机访问 → LinkedList;去重无序 → HashSet;有序 → TreeSet/LinkedHashSet;键值查找 → HashMap;插入顺序 → LinkedHashMap;排序键 → TreeMap。HashMap 依赖 hashCode/equals;JDK 8 链表+红黑树;负载因子与 2 幂容量。
常见误区与小结
HashMap与Hashtable:后者线程安全但过时,并发用 CHM。- 认为
Set用的是equalsalone(还依赖 hash 桶定位)。 - LinkedList 当「比 ArrayList 快」的万能列表(中间插入仍 O(n) 找位置)。
上篇打牢接口与复杂度,下篇再攻并发容器与源码细节。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

