HashMap 源码探究
put:
public V put(K key, V value) {
//这里调用了putVal()
return putVal(hash(key), key, value, false, true);
}
hash:
static final int hash(Object key) {
int h;
//这里用key的hashcode与自身右移16位做异位运算
//为了&(length-1)获得数组下标时,让下标不止受hashcode的的后几位影响,减小hash冲突
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
putVal:
final V putVal(int hash, K key, V
HashMap 源码探究最先出现在Python成神之路。
共有 0 条评论