读JSE源码(五)SortedMap & NavigableMap

1 SortedMap接口

2 NavigableMap接口


1 SortedMap接口

SortedMap接口是继承自Map接口的排序接口。实现SortedMap接口的类有排序功能,有2个实现了SortedMap接口的类ConcurrentSkipListMapTreeMap。

SortedMap中的方法

读JSE源码(五)SortedMap & NavigableMap_第1张图片

2 NavigableMap

NavigableMap扩展了SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法。方法 lowerEntryfloorEntryceilingEntry 和 higherEntry 分别返回与小于、小于等于、大于等于、大于给定键的键关联的 Map.Entry 对象,如果不存在这样的键,则返回 null。类似地,方法 lowerKeyfloorKeyceilingKey 和 higherKey 只返回关联的键。所有这些方法是为查找条目而不是遍历条目而设计的。

可以按照键的升序或降序访问和遍历 NavigableMapdescendingMap 方法返回映射的一个视图,该视图表示的所有关系方法和方向方法都是逆向的。升序操作和视图的性能很可能比降序操作和视图的性能要好。subMapheadMap 和 tailMap 方法与名称相似的 SortedMap 方法的不同之处在于:可以接受用于描述是否包括(或不包括)下边界和上边界的附加参数。任何 NavigableMap 的 Submap 必须实现 NavigableMap 接口。

此外,此接口还定义了 firstEntrypollFirstEntrylastEntry 和 pollLastEntry 方法,它们返回和/或移除最小和最大的映射关系(如果存在),否则返回 null

条目返回方法的实现应当返回 Map.Entry 对,表示产生映射关系时它们的快照,因此通常 支持可选的 Entry.setValue 方法。不过要注意的是,可以使用 put 方法在关联映射中更改映射关系。

subMap(K, K)headMap(K) 和 tailMap(K) 方法被指定为返回 SortedMap,以允许现有 SortedMap 实现能相容地改进为实现 NavigableMap,但鼓励此接口的扩展和实现重写这些方法以返回 NavigableMap。类似地,可以重写 SortedMap.keySet() 以返回 NavigableSet

读JSE源码(五)SortedMap & NavigableMap_第2张图片

读JSE源码(五)SortedMap & NavigableMap_第3张图片

你可能感兴趣的:(读JSE源码(五)SortedMap & NavigableMap)