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









相关推荐
不会就选b5 分钟前
算法日常・每日刷题--<优先级队列>2
数据结构·算法
hanlin0310 分钟前
刷题笔记:力扣第189题-轮转数组
笔记·算法·leetcode
xqqxqxxq25 分钟前
Redis 五大常用数据类型 + 通用命令笔记
数据库·redis·笔记
风流 少年26 分钟前
Spring AI 2.0:Hello World
java·人工智能·spring
qq_5896660529 分钟前
Java继承
java·开发语言
八角.。40 分钟前
面向对象-多态
java·开发语言
zjnlswd44 分钟前
c# 刘铁猛 学习笔记
笔记·学习
@卓越俊逸_角立杰出@1 小时前
快速学会 Java 实现意图识别:从规则匹配到 BiLSTM 分类器
java·开发语言·人工智能
wear工程师1 小时前
接口超时别只调大 timeout:Java HTTP 客户端其实有 3 段等待
java·http