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 源码剖析









相关推荐
StevenLdh8 分钟前
第八期 · 情绪闯关挑战盒:一个「无惩罚」成就系统的数据建模
java·微信小程序
HEJOO910 分钟前
iOS Dark Mode 适配笔记
笔记·ios·cocoa
小陈phd12 分钟前
深入理解agent学习笔记(五)——KV Cache友好的上下文设计
笔记·学习·spring
Wang's Blog16 分钟前
Java 项目实战: 交友项目 - 入门案例:编写 Dubbo 服务消费者
java·dubbo·交友
IT研究室23 分钟前
最新计算机毕业设计选题推荐-基于spring boot的教育学习平台-网站-文档指导-Java-springboot
java·spring boot·课程设计
亚林瓜子25 分钟前
Spring Boot 集成 ip2region 离线 IP 库实战指南
java·spring boot·后端·ip·ip2region
霖霖71430 分钟前
【ESP32笔记】工程目录解析
笔记·单片机·mcu·物联网
ss27335 分钟前
PG实战笔记 | 07 PostgreSQL常见编译项及其作用
数据库·笔记·postgresql
沪上企服通36 分钟前
规则引擎版本化:把代账科目映射当 policy-as-code 管(上海 5 家样本对照)
笔记·架构
志尊宝37 分钟前
Vue3 零基础每日笔记(085):项目上线前 Checklist——环境变量、报错监控、安全自查
前端·javascript·笔记·安全·信息可视化·echarts