哈希——Java 中的 HashMap 的工作原理是什么?

考察点:JAVA 哈希表
参考回答: HashMap 类有一个叫做 Entry 的内部类。这个 Entry 类包含了 key-value 作为实例变量。每 当往 hashmap 里面存放 key-value 对的时候,都会为它们实例化一个 Entry 对象,这个 Entry 对象就会存储在前面提到的 Entry 数组 table 中。Entry 具体存在 table 的那个位置是 根据 key 的 hashcode()方法计算出来的 hash 值(来决定)。

理解:
hashmap 是无序的但是实际输出有序。
HashMap的无序是指不会记录插入的顺序,也不会根据特定规则进行排序;
但是HashMap存值的时候会根据key的hashCode()来计算存储的位置(位置是散列的,所以说其无序);
你使用的key是String类型,String重写的hashCode()计算出的位置,遍历的时候恰好是"001",“003”,“005"的顺序;
PS:可以打印一下"001”,“003”,"005"的hashCode()再对16求个余数,然后再往里面加一个"011"和"012"再打印一下。

题目来自:牛客网
理解参考:百度知道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值