图 16-7
ConcurrentNavigableMap
ConcurrentNavigableMap
(参见图 16-7
)从 ConcurrentMap
和 NavigableMap
都继承,并且只包含这两个接口的方法,并进行一些更改以使返回类型更加精确。从 SortedMap
和 NavigableMap
继承的范围视图方法现在返回 ConcurrentNavigableMap
类型的视图。兼容性问题阻止 NavigableMap
覆盖 SortedMap
的方法,这里不适用于覆盖 NavigableMap
或 SortedMap
的 rangeview
方法; 因为这些都没有任何已经改进到新接口的实现,所以不会出现打破实现子类的危险。 出于同样的原因,现在可以覆盖 keySet
以返回 NavigableSet
。
ConcurrentSkipListMap
和 ConcurrentSkipListSet
之间的关系类似于 TreeMap
和 TreeSet
之间的关系;ConcurrentSkipListSet
由 ConcurrentSkipListMap
实现,其中每个键与相同的标准值相关联,所以第 13.2.3
节中给出的跳过列表实现的机制和性能在这里同样适用:基本操作(get
,put
和 remove
) 在 O(log n)
时间执行); 集合视图上的迭代器会在下一个时间内执行。这些迭代器是快速失败的。