所以, 性能考虑, HashMap中的链表出现越少, 性能越好.
HasmMap几个重要的字段:
?
?
?
?
?
HashMap的构造函数:
?...从上面代码中可以看出, 在常规构造器中, 没有为数组 table 分配内存空间(有个参数为map的构造器除外), 而是在执行 put操作时才真正构建table数组
?...重写equals方法要同时重写hashCode方法
为什么重写equals时也要同时重写hashCode? 下面举个小例子:
?...HashMap底层采用一个Entry[]数组来保存所有的key-value对, 当需要存储一个Entry对象时, 会根据hash算法来决定其在数组中的位置, 再根据equals方法决定其在该数组位置上的链表中的存储位置...; 当需要取出一个Entry时, 也会根据hash算法找到其在数组中的存储位置, 再根据equals方法从该位置上的链表中取出该Entry.