Java基础类型源码解析:如何多角度深入理解HashMap实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2976个文字,预计阅读时间需要12分钟。
前言+最终来到比较复杂的HashMap,因为它内部的变量、内部类、方法都比较多,不像ArrayList那样直接平铺开来,而是从几个具体的角度切入。+桶结构+HashMap的每个存储位置,又桶来管理。
前言
终于来到比较复杂的HashMap,由于内部的变量,内部类,方法都比较多,没法像ArrayList那样直接平铺开来说,因此准备从几个具体的角度来切入。
桶结构
HashMap的每个存储位置,又叫做一个桶,当一个Key&Value进入map的时候,依据它的hash值分配一个桶来存储。
看一下桶的定义:table就是所谓的桶结构,说白了就是一个节点数组。
transient Node<K,V>[] table; transient int size;
节点
HashMap是一个map结构,它不同于Collection结构,不是存储单个对象,而是存储键值对。
因此内部最基本的存储单元是节点:Node。
本文共计2976个文字,预计阅读时间需要12分钟。
前言+最终来到比较复杂的HashMap,因为它内部的变量、内部类、方法都比较多,不像ArrayList那样直接平铺开来,而是从几个具体的角度切入。+桶结构+HashMap的每个存储位置,又桶来管理。
前言
终于来到比较复杂的HashMap,由于内部的变量,内部类,方法都比较多,没法像ArrayList那样直接平铺开来说,因此准备从几个具体的角度来切入。
桶结构
HashMap的每个存储位置,又叫做一个桶,当一个Key&Value进入map的时候,依据它的hash值分配一个桶来存储。
看一下桶的定义:table就是所谓的桶结构,说白了就是一个节点数组。
transient Node<K,V>[] table; transient int size;
节点
HashMap是一个map结构,它不同于Collection结构,不是存储单个对象,而是存储键值对。
因此内部最基本的存储单元是节点:Node。

