Java面试题更新 2026-08-05

请列举 Java 中常用的集合类,并简要介绍它们各自的特点与适用场景。

技术原理技术选型Java

考察说明

考查对 Java 集合框架整体结构的理解,以及常用集合类的特点和选型能力。

回答思路

  1. 【回答框架 1】Java 集合框架主要分为两大体系:Collection 和 Map。Collection 下有 List、Set、Queue 等接口,Map 下主要有 HashMap、TreeMap 等实现类。List 有序且允许重复,Set 无序且不允许重复,Map 存储键值对。
  2. 【回答框架 2】List 常见实现有 ArrayList 和 LinkedList。ArrayList 基于动态数组,随机访问快,增删慢;LinkedList 基于双向链表,增删快,随机访问慢。实际开发中若无频繁中间插入删除,优先用 ArrayList。
  3. 【回答框架 3】Set 常见实现有 HashSet、LinkedHashSet 和 TreeSet。HashSet 基于 HashMap,无序且效率最高;LinkedHashSet 维护插入顺序;TreeSet 基于红黑树,可排序但性能稍低。Set 常用于去重场景。
  4. 【回答框架 4】Map 常见实现有 HashMap、LinkedHashMap 和 TreeMap。HashMap 基于哈希表,无序但性能高,允许一个 null 键和多个 null 值;LinkedHashMap 维护插入顺序;TreeMap 基于红黑树,按键排序。并发场景建议使用 ConcurrentHashMap。
  5. 【回答框架 5】Queue 接口代表队列,常用实现有 LinkedList(双端队列)和 PriorityQueue(优先级队列)。PriorityQueue 基于堆,可自定义优先级。此外还有线程安全的 BlockingQueue 实现,用于生产者消费者模型。
  6. 【关键点 1】Collection 接口下包含 List、Set、Queue,Map 独立于 Collection。
  7. 【关键点 2】ArrayList 基于动态数组,随机访问 O(1);LinkedList 基于链表,插入删除 O(1) 但随机访问 O(n)。
  8. 【关键点 3】HashSet 去重基于 hashCode 和 equals,需正确重写。
  9. 【关键点 4】HashMap 允许一个 null 键,Hashtable 不允许且线程安全但性能低。
  10. 【关键点 5】并发场景优先选择 ConcurrentHashMap,而不是 Hashtable。
  11. 【易错点 1】不要混淆 List 和 Set:List 有序可重复,Set 无序不可重复。
  12. 【易错点 2】注意 HashMap 的容量和负载因子影响性能,默认负载因子 0.75,过多扩容影响效率。
  13. 【易错点 3】TreeSet 和 TreeMap 要求元素实现 Comparable 或传入 Comparator,否则运行时报错。