大家好,又见面了,我是你们的朋友全栈君。
HashMap和Hashtable的区别
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
HashMap计算hash对key的hashcode进行了二次hash,以获得更好的散列值,然后对table数组长度取摸:
static int hash(int h) {
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
static int indexFor(int h, int length) {
return h & (length-1);
}
7.判断是否含有某个键 在HashMap 中,null 可以作为键,这样的键只有一个;可以有一个或多个键所对 应的值为null。当get()方法返回null 值时,既可以表示HashMap 中没有该键,也可 以表示该键所对应的值为null。因此,在HashMap 中不能用get()方法来判断HashM ap 中是否存在某个键,而应该用containsKey()方法来判断。Hashtable 的键值都不能 为null,所以可以用get()方法来判断是否含有某个键。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192159.html原文链接:https://javaforall.cn