轉自:http://cmsblogs.com/?p=4773
做者:彤哥node
點擊連接查看「跳錶」詳細介紹。面試
跳錶是一個隨機化的數據結構,實質就是一種能夠進行二分查找的有序鏈表。微信
跳錶在原有的有序鏈表上面增長了多級索引,經過索引來實現快速查找。數據結構
跳錶不只能提升搜索性能,同時也能夠提升插入和刪除操做的性能。多線程
跳錶在原有的有序鏈表上面增長了多級索引,經過索引來實現快速查找。併發
內部類跟存儲結構結合着來看,大概能預測到代碼的組織方式。app
// 數據節點,典型的單鏈表結構 static final class Node<K,V> { final K key; // 注意:這裏value的類型是Object,而不是V // 在刪除元素的時候value會指向當前元素自己 volatile Object value; volatile Node<K,V> next; Node(K key, Object value, Node<K,V> next) { this.key = key; this.value = value; this.next = next; } Node(Node<K,V> next) { this.key = null; this.value = this; // 當前元素自己(marker) this.next