Java併發ConcurrentNavigableMap接口
java.util.concurrent.ConcurrentNavigableMap
接口是ConcurrentMap
接口的子接口,並且支持NavigableMap
操作,並且對其可導航子映射和近似匹配進行遞歸。
ConcurrentNavigableMap接口中的方法
序號
方法
描述
1
NavigableSet<K> descendingKeySet()
返回此映射中包含的鍵的相反順序的NavigableSet
視圖。
2
ConcurrentNavigableMap<K,V> descendingMap()
返回此映射中包含的映射的反向排序視圖。
3
ConcurrentNavigableMap<K,V> headMap(K toKey)
返回該映射的部分鍵嚴格小於toKey
的視圖。
4
ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive)
返回該映射的部分視圖,其鍵值小於(或等於,如果包含值爲true
)toKey
。
5
NavigableSet<K> keySet()
返回此映射中包含的鍵的NavigableSet
視圖。
6
NavigableSet<K> navigableKeySet()
返回此映射中包含的鍵的NavigableSet
視圖。
7
ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的視圖,其鍵範圍從fromKey
到toKey
。
8
ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
返回此映射,其鍵從fromKey
(包括)到toKey
所述部分的視圖。
9
ConcurrentNavigableMap<K,V> tailMap(K fromKey)
返回此映射的部分視圖,其鍵值大於或等於fromKey
。
10
ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
從映射返回一個鍵大於(或等於,包含值爲true
)部分的視圖。
實例
以下TestThread
程序顯示了基於線程的環境中ConcurrentNavigableMap
接口的使用。
import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.ConcurrentSkipListMap;
public class TestThread {
public static void main(final String[] arguments){
ConcurrentNavigableMap<String,String> map = new ConcurrentSkipListMap<String, String>();
map.put("1", "One");
map.put("2", "Two");
map.put("3", "Three");
map.put("5", "Five");
map.put("6", "Six");
System.out.println("Initial ConcurrentHashMap: "+map);
System.out.println("HeadMap(\"2\") of ConcurrentHashMap: "+map.headMap("2"));
System.out.println("TailMap(\"2\") of ConcurrentHashMap: "+map.tailMap("2"));
System.out.println("SubMap(\"2\", \"4\") of ConcurrentHashMap: "+map.subMap("2","4"));
}
}
這將產生以下結果 -
Initial ConcurrentHashMap: {1=One, 2=Two, 3=Three, 5=Five, 6=Six}
HeadMap("2") of ConcurrentHashMap: {1=One}
TailMap("2") of ConcurrentHashMap: {2=Two, 3=Three, 5=Five, 6=Six}
SubMap("2", "4") of ConcurrentHashMap: {2=Two, 3=Three}