hashMap中一直未搞懂的问题

Alan 794 2020-08-13

1.什么是hash冲突?

​ hashMap在存值的时候,会调用key的hashcode()方法获取key的哈希值,然后根据哈希值决定要存在数据的哪个位置。当这个位置上已经存在一个键值对,而且键值对的key和要存的key不同的时候,就叫发生了哈希冲突。

2.怎么解决哈希冲突?

​ 1.开放地址法,就是如果冲突了,就找下一个位置,看能不能存值,如果能存,就存在这里,如果不能存,就再继续找。

​ 2.链表法:如果发生哈希冲突了,就在这个元素的next位置存着,冲突的两个元素形成一个链表,新加入的在链表尾部。


# HashMap