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









相关推荐
ysa0510303 分钟前
【并查集】判环
c++·笔记·算法
2501_948106915 分钟前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
TanYYF7 分钟前
spring ai入门教程二
java·人工智能·spring
SeeYa-J20 分钟前
Spring IOC(Inversion of Control)
java·spring·rpc
不会c+1 小时前
02-SpringBoot配置文件
java·spring boot·后端
AI 大模型学习不踩坑1 小时前
OpenClaw 完整教程:从安装到使用(官方脚本版)
java·人工智能·神经网络·机器学习·计算机视觉·自然语言处理·openclaw
Listen·Rain2 小时前
数据库流式查询
java·数据库
彦为君2 小时前
算法思维与经典智力题
java·前端·redis·算法
翔云 OCR API2 小时前
慧视扫描王-财务少加班
java·自动化
雨辰AI2 小时前
生产级实战:人大金仓 V9 标准化运维手册(日常巡检 + 监控告警 + 应急处置)
java·运维·数据库·后端