五:NavigableMap
1、接口简介:
a)是对SortedMap接口的扩展、
b)方法 lowerEntry、floorEntry、ceilingEntry 和higherEntry 分别返回与小于、小于等于、大于等于、大于给定键的键关联的 Map.Entry 对象。
c)方法 lowerKey、floorKey、ceilingKey 和higherKey 只返回关联的键。
d)可以按照键的升序或降序访问和遍历 NavigableMap
e)subMap、headMap 和tailMap 方法与名称相似的 SortedMap 方法的不同之处在于:可以接受用于描述是否包括(或不包括)下边界和上边界的附加参数
f)firstEntry、pollFirstEntry、lastEntry 和pollLastEntry 方法,它们返回和/或移除最小和最大的映射关系(如果存在),否则返回 null。
2、源码分析:
package com.chy.collection.core; import java.util.NavigableSet; public interface NavigableMapextends SortedMap { /** 返回一个键-值映射关系,它与严格小于给定键的最大键关联;如果不存在这样的键,则返回 null。*/ Map.Entry lowerEntry(K key); /** 返回严格小于给定键的最大键;如果不存在这样的键,则返回 null。*/ K lowerKey(K key); /** 返回一个与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。*/ Map.Entry floorEntry(K key); /** 返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。*/ K floorKey(K key); /** 返回一个键-值映射关系,它与大于等于给定键的最小键关联;如果不存在这样的键,则返回 null。*/ Map.Entry ceilingEntry(K key); /** 返回大于等于给定键的最小键;如果不存在这样的键,则返回 null。*/ K ceilingKey(K key); /** 返回一个键-值映射关系,它与严格大于给定键的最小键关联;如果不存在这样的键,则返回 null。*/ Map.Entry higherEntry(K key); /** 返回严格大于给定键的最小键;如果不存在这样的键,则返回 null。*/ K higherKey(K key); /** 返回一个与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。*/ Map.Entry firstEntry(); /** 返回一个键-值映射关系,它与严格小于给定键的最大键关联;如果不存在这样的键,则返回 null。*/ Map.Entry lastEntry(); /** 移除并返回与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。*/ Map.Entry pollFirstEntry(); /** 移除并返回与此映射中的最大键关联的键-值映射关系;如果映射为空,则返回 null。*/ Map.Entry pollLastEntry(); /** 返回此映射中所包含映射关系的逆序视图。*/ NavigableMap descendingMap(); /** 返回此映射中所包含键的 NavigableSet 视图。*/ NavigableSet navigableKeySet(); /** 返回此映射中所包含键的逆序 NavigableSet 视图。*/ NavigableSet descendingKeySet(); /** 返回此映射的部分视图,其键的范围从 fromKey 到 toKey。*/ NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive); /** 返回此映射的部分视图,其键小于(或等于,如果 inclusive 为 true)toKey。*/ NavigableMap headMap(K toKey, boolean inclusive); /** 返回此映射的部分视图,其键大于(或等于,如果 inclusive 为 true)fromKey。*/ NavigableMap tailMap(K fromKey, boolean inclusive); /** 返回此映射的部分视图,其键值的范围从 fromKey(包括)到 toKey(不包括)。*/ SortedMap subMap(K fromKey, K toKey); /** 返回此映射的部分视图,其键值严格小于 toKey。*/ SortedMap headMap(K toKey); /** 返回此映射的部分视图,其键大于等于 fromKey。*/ SortedMap tailMap(K fromKey); }