Java基础之集合(3/8)

面试中被问到 Java 集合,你是不是张口就来:"有 List、有 Map,List 里有 ArrayList,Map 里有 HashMap"?这听起来像在报菜名,知道点皮毛但没体系。面试官想听的是你的知识图谱------从整体架构到具体特点,逻辑清晰。

别担心,这篇文章,帮你构建这个图谱。我们从两大阵营入手,逐层展开。

一、两大阵营的划分

Java 集合分为两大阵营:Collection 和 Map。Collection 是单个元素的集合,强调添加、删除、遍历;Map 是键值对的集合,键唯一,值可重复。Collection 下分三支:List、Set、Queue。Map 则有多种实现,聚焦映射。这不是零散知识,而是树状结构------先总后分。

二、Collection 阵营:单个元素的多样管理

List:有序、可重复的序列

List 允许重复,保持插入顺序。典型实现:ArrayList 和 LinkedList。

  • ArrayList:底层动态数组,随机访问快 (O(1)),但中间插入/删除慢 (O(n),需挪元素)。适合读多写少,如数据列表。
  • LinkedList:底层双向链表,插入/删除快 (O(1)),但查找慢 (O(n),需遍历)。还能当队列用,适合频繁修改。

从 List 的顺序过渡到 Set 的唯一性。

Set:去重的利器,别再说"无序"

Set 不允许重复,基于 hashCode 和 equals 判断。

  • HashSet:底层哈希表,无序,操作平均 O(1)。快速去重。
  • LinkedHashSet:加链表,维护插入顺序。去重且有序。
  • TreeSet:底层红黑树,按自然序或 Comparator 排序,O(log n)。适合排序去重。

记住:Set 不全无序,视实现而定。

Queue:排队的逻辑

Queue 讲究 FIFO 或优先级。

  • LinkedList:普通队列,先进先出,O(1) 操作。
  • PriorityQueue:优先级队列,底层堆,按优先级出队,O(log n)。不 FIFO。

Queue 让集合从存储转向调度。

三、Map 阵营:键值对的映射高手

Map 存键值对,无序基调但有变体。

  • HashMap:底层哈希表,无序,O(1) 操作。允许 null。
  • LinkedHashMap:加链表,有插入或访问顺序。适合 LRU 缓存。
  • TreeMap:底层红黑树,有序 (O(log n))。不支持 null 键。
  • Hashtable:老版线程安全,不支持 null;现代用 ConcurrentHashMap 替换,高并发更好。

Map 的选择取决于顺序和并发需求。

相关推荐
fliter14 小时前
Cloudflare: Agent 现在可以自己注册账号、购买域名、部署上线了
后端
JAVA面经实录91714 小时前
企业级java+LangChain4j-RAG系统 限流熔断降级
java·开发语言·分布式·langchain
Drug14 小时前
Struts2 从入门到放弃?不,这些核心知识你依然需要掌握
java
Slow菜鸟14 小时前
Codex CLI 教程(五)| AI 驱动项目从零到一:面向 Java 全栈工程师打造个人 ECC(V2版)
java·开发语言·人工智能
月落归舟14 小时前
java基础之拷贝、单例
java·单例·拷贝
鬼蛟14 小时前
什么是 Git
java
李日灐15 小时前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile
蝎子莱莱爱打怪15 小时前
小孩儿才做选择!Hermes 和OpenClaw 我都要!
人工智能·后端·github
直奔標竿15 小时前
SpringAI + RAG + MCP + Agent 零基础全栈实战(完结篇)| 27课完整汇总,Java开发者AI转型必看
java·开发语言·人工智能·spring boot·后端·spring
云烟成雨TD15 小时前
Spring AI 1.x 系列【31】向量数据库:进阶使用指南
java·人工智能·spring