当前位置: > 财经>正文
为什么要用HashMap?这样回答面试官直呼内行手撕HashMap系列 外汇再保险是对外汇财产吗为什么不能用现金
HashMap 是基于 hashing 的原理
我们使用 put(key, value) 存储对象到 HashMap 中,使用 get(key) 从 HashMap 中获取对象。当我们给 put() 方法传递键和值时,我们先对键调用 hashCode() 方法,计算并返回的 hashCode 是用于找到 Map 数组的 bucket 位置来储存 Node 对象。
这里关键点在于指出,HashMap 是在 bucket 中储存键对象和值对象,作为Map.Node 。
以下是 HashMap 初始化
简化的模拟数据结构:
Node[] table = new Node[16]; // 散列桶初始化,tableclass Node {hash; //hash值key; //键value; //值node next; //用于指向链表的下一层(产生冲突,用拉链法)以下是具体的 put 过程(JDK1.8)
对 Key 求 Hash 值,然后再计算下标如果没有碰撞,直接放入桶中(碰撞的意思是计算得到的 Hash 值相同,需要放到同一个 bucket 中)如果碰撞了,以链表的方式版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。