博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 集合 HashMap
阅读量:4500 次
发布时间:2019-06-08

本文共 617 字,大约阅读时间需要 2 分钟。

ashMap的存储接口是底层有1个Node<K,V>[] table数组,然后根据key的hash值找到定位的下标,然后存到数组里面。如何key的hash值是一样的,但是value不一样的话,他添加的节点就是Node链表的下一个节点。

所以hashMap 查询和删除比较快,他直接根据key找到hash值,这边会根据hash值是去数组里面找,还是在node的链表里面找,所以一个hash算法很重要,如果hash算法不好的,导致链表很长的话,那么比较慢了。

 

HashMap 把Node<K,V>[] table 加了transient ,这样让他不进行序列化这个参数,是因为他里面重写了readObject和writeObject。因为不同的jvm在实现hashcode不一样。因为HashMap的存储的位置是根据key的hash值存储的。所以重写了序列化的方法。

 

这边HashMap new的时候可以带参数,这边设置Node的初始化容量的时候最好是2的幂方,如果不是的话,系统会自动帮你算出2的幂方。

 

首先说下Map接口

Map接口有1个内部接口Entry,这个接口有获取key的方法,获取value的方法等等。。

 

HashMap 有1个内部类,Node,他实现了Entry这个接口,他是一个单向链表

Node 实现

 

循环

 

转载于:https://www.cnblogs.com/tangwangming/p/8806428.html

你可能感兴趣的文章
deque容器
查看>>
2017-2018-1 20155203 20155204 实验二 固件程序设计
查看>>
三方贸易-drop ship
查看>>
Android RenderScript 使用 Struct 及其下标的赋值
查看>>
【题解】BZOJ P1801 dp
查看>>
杂项-软件生命周期:软件生命周期
查看>>
小程序:小程序能力
查看>>
P1578 奶牛浴场 有障碍点的最大子矩形
查看>>
OpenCV学习:体验ImageWatch
查看>>
socket_循环接收消息
查看>>
I/O基础之概念
查看>>
各种算法的优缺点:
查看>>
poj 2513 Colored Sticks 字典树
查看>>
BZOJ 1266: [AHOI2006]上学路线route Floyd_最小割
查看>>
Softmax函数
查看>>
.NET 向SQL里写入非Text类型
查看>>
HAOI2006 受欢迎的牛
查看>>
【代码备份】pocs.m
查看>>
(转)ApplicationDomain
查看>>
form注册表单圆角 demo
查看>>