27°

HashMap

1.主干结构 Node<K,V>[] table Node<K,V> implement Map.Entry<K,V> //Node点 static class Node<K,V> implements Map.Entry<K,V> { final int hash; //用来定位数组索引位置 final K key; V value; Node<K,V> next; //链表的下一个node

Node(int hash, K key, V value, Node<K,V> next) { ... }
public final K getKey(){ ... }
public final V getValue() { ... }
public final String toString() { ... }
public final int hashCode() { ... }
public final V setValue(V newValue) { ... }
public final boolean equals(Object o) { ... }

} 2.HashMap哈希桶数组table的长度length大小必须为2的n次方(一定是合数),主要是为了在取模和扩容时做优化,同时减少冲突,HashMap定位哈希桶索引位置时,也加入了高位参与运算的过程。 3.而当链表长度太长(默认超过8)时,链表就转换为红黑树,利用红黑树快速增删改查的特点提高HashMap的性能

本文由【哎那个新来的】发布于开源中国,原文链接:https://my.oschina.net/u/2870118/blog/3158149

全部评论: 0

    我有话说: