您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

什么是HashMap


Hashmap是有数组+链表+红黑树组成的数据结构。HashMap采用Entry数组来存储key-value对,每一个键值对组成了一个Entry实体,Entry类实际上是一个单向的链表结构,它具有Next指针,可以连接下一个Entry实体。 只是在JDK1.8中,链表长度大于8的时候,链表会转成红黑树。数组是用来确定桶的位置,利用元素的key的hash值对数组长度取模得到. 链表是用来解决hash冲突问题,当出现hash值一样的情形,就在数组上的对应位置形成一条链表。在hashmap插入数据的时候通过计算key的hash值,如果hash值没有碰撞就直接放到数组对应的链表中。如果hash值碰撞了,就以链表形式存放。如果碰撞导致链表过长,就会把链表转换成红黑树。从hashmap获取数据,根据key计算出hash值,如果链表中第一个节点就命中直接返回。如果有冲突,通过key.equals去查找对应的元素。Hashmap默认长度16,在插入数据的时候,通过load factor因子判断是否需要扩容,默认0.75。


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进