校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > Map、set集合(后序会删除)
题目

关于HashMap简单介绍

解答

关于HashMap的简单介绍,可从以下三点

1、HashMap数据结构介绍 : 

1.1HashMap是由数组和链表结构组成。这种结构有两个好处:1、查找比纯链表快,插入删除比纯数组快;2、可以解决HashCode冲突。  

1.2 需要注意的是 在JDK1.8之后,当链表中的元素超过8个时,链表会转为红黑树
2、数据的插入过程以及查找过程

2.1、判断存储Table是否为空,如果为空初始化,然后判断key是否为空,如果为空判断table[0]是否有值,无值插入
数据,有值替换value。
2.2、key不为空,则根据key计算数组中的index(先计算key的hash值,然后与table的表的长度减1做与运算)。
2.3、找数组中对应位置有没有存储数据,如果没有存入,如果有遍历数组上的所有数据,查看有没有数据hash值相
等key相等的。如果有则替换。
2.4、如果没有找到则添加数据,首先会查看是否需要增容,如果需要增容,并且重新计算index值,如果不需要的话
生成一个实体,并且存放在表头。

3、HashMap初始大小计算以及重要属性介绍

int threshold; // table所能容纳的key-value对极限 (table.length(数组)*loadFactor)
final float loadFactor; // 负载因子(1个系数可以大于1)
int modCount; //HashMap内部结构发生变化的次数,替换不增加
int size; //实际存在的键值对数量
常见参数初始大小
Table长度初始大小16
loadFactor负载因子为0.75


C 0条回复 评论

帖子还没人回复快来抢沙发