Java 零基础全套教程,数据结构与集合源码,笔记 168-174

Java 零基础全套教程,数据结构与集合源码,笔记 168-174

一、参考资料

【Java视频教程,java入门神器(附300道Java面试题剖析)】 https://www.bilibili.com/video/BV1PY411e7J6/?p=168\&share_source=copy_web\&vd_source=855891859b2dc554eace9de3f28b4528

二、笔记总结

168、数据结构概述与手写线性表、二叉树





















169、ArrayList 在 JDK 7 和 JDK 8 中的源码剖析













170、Vector、LinkedList 在 JDK 8 中的源码剖析









171、HashMap 在 JDK 7 中的源码剖析


markdown 复制代码
- HashMap 中保存的是 Entry 对象,key 和 value 都是 Entry 对象的属性。
- HashMap 在 JDK 1.7 中底层数据结构是,数组+链表,JDK 1.8 中是,数组+链表+红黑树。
- 在 JDK 1.7 中,HashMap 在使用 put 方法添加元素时
  - 会根据要添加元素的 key 的 hashCode 方法计算 Hash 值,然后根据 Hash 值计算出元素在数组中的存储位置。
  - 当数组当前位置已经存在元素时,如果两个元素 key 的 hashCode 方法返回值不相同,则说明是两个不同的元素,把数组当前位置上原有的元素取出,然后把新的元素添加到数组当前位置上,新的元素的 next 属性指向原来的元素,形成**链表结构**,HashMap 中的元素都是 Entry 对象,Entry 对象有 next 属性,用于记录下一个元素的位置。
  - 当数组当前位置已经存在元素时,如果两个元素 key 的 hashCode 方法返回值相同,equals 方法比较返回 true,说明是两个相同的元素,则把旧元素从数组位置上取出,新的元素放到数组位置上,**put 会返回被替换元素的 value 值**。
  - 如果数组当前位置没有元素,则直接添加元素到数组当前位置,**put 方法返回 null**。






172、HashMap 在 JDK 1.8 中的源码剖析







173、LinkedHashMap、HashSet、LinkedHashSet 源码剖析









相关推荐
腻害兔6 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社7 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
克里斯蒂亚诺更新7 小时前
ruoyi角色权限的对应关系
笔记
萧瑟余晖8 小时前
JDK 26 新特性详解
java·开发语言
马优晨8 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a11177610 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
维天说11 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
破碎的南瓜11 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
Zane199412 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
你想知道什么?12 小时前
线性回归-学习笔记
笔记·学习·线性回归