当前位置: 首页 > news >正文

还搞不懂集合?一张图带你吃透 ArrayList、HashMap、ConcurrentHashMap 的底层原理(附7张流程图)

还搞不懂集合?一张图带你吃透 ArrayList、HashMap、ConcurrentHashMap 的底层原理(附7张流程图)目录一、集合框架概览二、List 集合2.1 ArrayList2.2 LinkedList2.3 ArrayList 与 LinkedList 对比三、Set 集合3.1 HashSet3.2 TreeSet3.3 LinkedHashSet四、Map 集合4.1 HashMap 的底层原理4.2 TreeMap4.3 LinkedHashMap五、线程安全的集合六、遍历集合的方式对比七、实际应用场景与选型总结一、集合框架概览集合框架是 Java 里最常用的东西,说白了就是用来存数据、取数据的一套工具。Java 集合主要分为两大接口:Collection:存储单个元素List:有序可重复 — ArrayList、LinkedListSet:无序不可重复 — HashSet、TreeSet、LinkedHashSetMap:存储键值对 — HashMap、TreeMap、LinkedHashMap、Hashtable// 集合框架的继承关系(简化版)Collection├──List(有序,可重复) │ ├──ArrayList—— 数组,查快 │ └──LinkedList—— 链表,插删快 │ ├──Set(无序,不可重复) │ ├──HashSet—— 哈希表,最快 │ ├──TreeSet—— 红黑树,自动排序 │ └──LinkedHashSet—— 链表+哈希,按插入顺序Map(键值对) ├──HashMap—— 数组+链表+红黑树(重要) ├──TreeMap—— 红黑树,Key自动排序 ├──LinkedHashMap—— 链表+哈希,按插入顺序 └──Hashtable—— 线程安全,但基本被淘汰了注:上面这些类的底层实现,面试基本都会问。整体关系图:Map 接口(键值对)Collection 接口List 接口有序、可重复Set 接口无序、不可重复MapArrayList底层: Object[] 数组LinkedList底层: 双向链表Vector线程安全(已淘汰)HashSet底层: HashMapTreeSet底层: TreeMap(红黑树)LinkedHashSet底层: LinkedHashMapHashMapTreeMap底层: 红黑树LinkedHashMap底层: HashMap + 双向链表Hashtable线程安全(已淘汰)二、List 集合List 的特点:有序、可重复,通过索引操作元素。2.1 ArrayList底层是Object[] 数组。特点:查快(O(1)),插删慢(要搬数据)。ListStringlist=newArrayList();list.add("hello");list.add("world");list.add(1,"java");// 指定位置插入,后面的元素往后挪list.remove("hello");// 按元素删list.remove(0);// 按索引删System.out.println(list.get(0));// 通过索引取值扩容机制:ArrayList 底层数组默认容量是10(JDK 8)。满了之后会自动扩容——每次扩成原来的1.5 倍。// 源码简化版(ArrayList.grow)intnewCapacity=oldCapacity+(oldCapacity1);// oldCapacity * 1.5如果你知道大概要存多少数据,创建 ArrayList 的时候直接指定初始容量,避免频繁扩容。(new ArrayList(1000))ArrayList 扩容流程图:
http://www.gsyq.cn/news/1361682.html

相关文章:

  • 10个免费VMware Workstation Pro 17许可证密钥:终极激活与使用完整指南
  • “协议+IP+安全”通常指网络通信中涉及的**网络协议(Protocol)**、**IP地址(Internet Protocol Address)**以及**网络安全(Security)**三者的协同
  • # 软考软件设计师 · 考前9天综合模考模拟
  • CTF解题记录5(web)
  • Lindy自动化不是IT部门的事!CIO亲述:如何用“业务-技术-合规”三权制衡模型锁定首期300万降本收益
  • 使用Python为你的数据分析脚本添加Taotoken大模型智能总结功能
  • 2026年景区智能监控系统实测评测:远程监控器、远程监控系统、远程监控设备、安防监控系统设备、数字高清监控、无线监控系统选择指南 - 优质品牌商家
  • 多云安全态势:管理多个云环境的安全状态
  • ML模型监控工具:监控和维护机器学习模型的性能
  • Kubernetes自定义资源:扩展Kubernetes API的能力
  • 有哪些真正好用的降AIGC软件?能同时符合论文规范和压低AIGC数值的那种
  • 降AI率天花板!AI率92%暴降至5%!实测10款降AIGC平台!免费额度狂薅攻略
  • AI检测率太高论文过不了?这4个降AI率平台2026年别再错过了
  • 【Telephony】IPC 跨层通信机制深度解析 (Binder HAL)
  • 211本科985硕拿下淘天AI二面!全程无代码,这面试题火了!
  • RMAN 增量备份(Incremental Backup)
  • 3个PDF编辑痛点,用这个免费工具轻松搞定!PDF补丁丁全面解析
  • C++ 学习笔记---容器---vector(后续会更新)
  • 为什么92%的Lindy自动化项目在第90天遭遇断崖式停滞?资深架构师紧急披露3个临界预警信号
  • 第1篇:开篇|Claude Code 源码泄露始末与核心价值
  • Go语言依赖注入:构造函数注入
  • 【AI Agent行业落地黄金法则】:20年架构师亲授7大避坑指南与3个已验证千万级ROI场景
  • 收藏干货|2026 版 AI 大模型系统学习路线,小白程序员入门进阶指南
  • 清远搬工厂公司哪家好?口碑 TOP5 推荐 + 避坑指南 - 从来都是英雄出少年
  • Scrapy-Pinduoduo:高效构建拼多多电商数据采集系统
  • 10_函数递归_从阶乘到递归调用栈
  • 进程与线程:并发编程基础
  • 大数据+大模型=乘法效应?6个场景告诉你,大模型如何让你的数据平台“活”起来!
  • 计算机网络基础:TCP/IP 与 HTTP 核心知识
  • 缓存设计:从 LRU 到 Redis 实战