Java | JDK8下的ConcurrentHashMap#get
Posted jj81
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java | JDK8下的ConcurrentHashMap#get相关的知识,希望对你有一定的参考价值。
1 public V get(Object key) 2 Node<K,V>[] tab; Node<K,V> e, p; int n, eh; K ek; 3 //寻址 4 int h = spread(key.hashCode()); 5 if ((tab = table) != null && (n = tab.length) > 0 && 6 (e = tabAt(tab, (n - 1) & h)) != null) 7 //当头节点的hash值与key的hash值相同时,判断key的内容知否相同 8 if ((eh = e.hash) == h) 9 if ((ek = e.key) == key || (ek != null && key.equals(ek))) 10 return e.val; 11 12 //如果头节点的hash值eh<0 红黑树存储 直接寻找 13 else if (eh < 0) 14 return (p = e.find(h, key)) != null ? p.val : null; 15 //链表查找 16 while ((e = e.next) != null) 17 if (e.hash == h && 18 ((ek = e.key) == key || (ek != null && key.equals(ek)))) 19 return e.val; 20 21 22 return null; 23
以上是关于Java | JDK8下的ConcurrentHashMap#get的主要内容,如果未能解决你的问题,请参考以下文章