我们经常使用hashmap,但是hashMap底层实现到底是怎么实现的呢?你知道么?
HashMap的实现原理:
1,利用key的hashCode重新计算出当前对象在数组中的下标
2,存储时,如果出现hash值相同的key,此时有两种情况。(1)如果key相同,覆盖原始值;(2)如果key不同(出现冲突),则将当前key-value放入链表中
3,获取值时,直接找到对应hash值对应的下标,再进行判断key是否相同,从而找到对应的value
简单实现代码如下:
public class myHashMap<K, V> {
private static int default_length = 16;
private myEntry<K, V>[] entries;
public myHashMap() {
super();
entries = new myEntry[default_length];
}
public V put(K key, V value) {
int index = key.hashCode() % default_length;//hashcode值除map大小取余
myEntry<K, V> myEntry = entries[index];
for (myEntry<K, V> entry = entries[index]; entry != null; entry = entry.next) {
if (e