ConcurrentNavigableMap

时间:2020-01-09 10:36:25  来源:igfitidea点击:

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。