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