get和remove方法展示

2021-09-27 15:56:10 浏览数 (1)

get方法

代码语言:javascript复制
public V get(Object key) {
    Node<K,V> e;
    return (e = getNode(hash(key), key)) == null ? null : e.value;
}

get方法的实现就是计算key的hash值,然后通过getNode获取对应的value

remove方法

代码语言:javascript复制
public V remove(Object key) {
    Node<K,V> e;
    return (e = removeNode(hash(key), key, null, false, true)) == null ?
        null : e.value;
}

remove方法也是通过计算key的hash,调用removeNode来删除元素的

HashMap的一些特性

  • 允许key和value为null
  • 除了允许为努力了和同步,其他的和HashTable一样
  • 不保证有序
  • 初始容量太高或者太低对便利都不太好
  • 当哈希表容量超过初始容量*装载因子时,哈希表会进行再散裂,桶数量*2
  • 不同步,想要同步可以使用Collections工具类实现Map m = Collections.synchronizedMap(new HashMap(...));
  • 装载因子默认是0.75,设置高虽然会减少空间,但是遍历的开销会增加。因此在设置初始容量时,应该考虑好装载因子和容量的大小,如果设置的好,就不用再散裂了

0 人点赞