图 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) 时间执行); 集合视图上的迭代器会在下一个时间内执行。这些迭代器是快速失败的。
