ConcurrentNavigableMap
java.util.concurrent.ConcurrentNavigableMap
类是一个java.util.NavigableMap,支持并发访问,并且为其子图启用了并发访问。 "子地图"是由各种方法(例如," headMap()"," subMap()"和" tailMap()")返回的地图。
除了重新解释在" NavigableMap"中找到的所有方法外,我只会看一下" ConcurrentNavigableMap"中添加的方法。
headMap()
headMap(T toKey)方法返回包含键的地图视图,这些键严格小于给定的键。
如果我们对原始地图进行更改,这些更改将反映在总图中。
这是一个示例说明headMap()方法的用法的示例。
ConcurrentNavigableMap map = new ConcurrentSkipListMap(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); ConcurrentNavigableMap headMap = map.headMap("2");
" headMap"将指向" ConcurrentNavigableMap",其中仅包含键" 1",因为只有此键严格小于" 2"。
有关此方法如何工作以及其重载版本如何工作的更多特定详细信息,请参见JavaDoc。
tailMap()
tailMap(T fromKey)方法返回包含大于或者等于给定的fromKey的键的地图视图。
如果我们对原始贴图进行更改,则这些更改将反映在尾部贴图中。
这是一个示例使用tailMap()方法的示例:
ConcurrentNavigableMap map = new ConcurrentSkipListMap(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); ConcurrentNavigableMap tailMap = map.tailMap("2");
tailMap将包含键" 2"和" 3",因为这两个键大于或者等于给定键" 2"。
有关此方法如何工作以及其重载版本如何工作的更多特定详细信息,请参见JavaDoc。
subMap()
subMap()方法返回原始地图的视图,该视图包含从(包括)到(不包括)作为该方法的参数给出的两个键的所有键。这是一个例子:
ConcurrentNavigableMap map = new ConcurrentSkipListMap(); map.put("1", "one"); map.put("2", "two"); map.put("3", "three"); ConcurrentNavigableMap subMap = map.subMap("2", "3");
返回的子图仅包含键" 2",因为只有此键大于或者等于" 2"且小于" 3"。
更多方法
ConcurrentNavigableMap接口包含更多可能有用的方法。例如:
- DescendingKeySet()
- descendingMap()
- navigableKeySet()
有关这些方法的更多信息,请参见官方JavaDoc。