所使用的jdk版本爲1.8版本,先看一下ConcurrentNavigableMap<K,V>在JDK中Map的UML類圖中的位置:
2.1.5 ConcurrentNavigableMap接口
通過對前面NavigableMap接口和ConcurrentMap接口的分析,ConcurrentNavigableMap接口就很簡單了,從定義上看,它繼承了NavigableMap和ConcurrentMap這兩個接口子Map,就是兩者功能的結合,既保證線程安全性,又提供導航搜索子Map視圖的功能。ConcurrentNavigableMap中定義的方法也很簡單,跟NavigableMap中的方法類似,只不過NavigableMap中返回的子Map視圖是NavigableMap類型,而在ConcurrentNavigableMap中返回的都是ConcurrentNavigableMap類型,比如:
public interface ConcurrentNavigableMap<K,V>
extends ConcurrentMap<K,V>, NavigableMap<K,V>
{
/**
* @throws ClassCastException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
* @throws IllegalArgumentException {@inheritDoc}
*/
ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive,
K toKey, boolean toInclusive);
/**
* @throws ClassCastException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
* @throws IllegalArgumentException {@inheritDoc}
*/
ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive);
/**
* @throws ClassCastException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
* @throws IllegalArgumentException {@inheritDoc}
*/
ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive);
ConcurrentNavigableMap接口中的一個實現類是ConcurrentSkipListMap類,後續介紹之。