Java中的Map【三】NavigableMap接口

       所使用的jdk版本为1.8版本,先看一下NavigableMap<K,V>在JDK中Map的UML类图中的位置:

2.1.3 NavigableMap接口   

     接口NavigableMap<K,V> extends SortedMap<K,V>,是一个扩展的SortedMap,在继承SortedMap接口的基础之上,扩展了一些返回了给定搜索目标的最接近匹配项的方法。从上图可以看到,Navigable接口也是TreeMap类直接实现的接口。简单给其中的方法归类一下:

1、搜索并返回Key的方法:

(1)K lowerKey(K key);

  返回NavigableMap中严格小于给定键的最大键;如果不存在这样的键,则返回 null

(2)K floorKey(K key);

  返回NavigableMap中小于或等于给定键的最大键;如果不存在这样的键,则返回 null

(3)K higherKey(K key);

  返回NavigableMap中严格大于给定键的最小键;如果不存在这样的键,则返回 null

(4)K ceilingKey(K key);

  返回NavigableMap中大于或等于给定键的最小键;如果不存在这样的键,则返回 null

2、返回Map.Entry<K,V>结果的方法:

(1)Map.Entry<K,V> lowerEntry(K key);

  返回一个键-值映射关系,它与严格小于给定键的最大键(即lowerKey(K key)返回的键对应的键值对)关联;如果不存在这样的键,则返回 null

(2)Map.Entry<K,V> floorEntry(K key);

  返回一个键-值映射关系,它与小于或等于给定键的最大键关联(即floorKey(K key)返回的键对应的键值对);如果不存在这样的键,则返回 null

(3)Map.Entry<K,V> higherEntry(K key);

  返回一个键-值映射关系,它与严格大于给定键的最小键关联(即higherKey(K key)返回的键对应的键值对);如果不存在这样的键,则返回 null

(4)Map.Entry<K,V> ceilingEntry(K key);

  返回一个键-值映射关系,它与大于或等于给定键的最小键关联(即ceilingKey(K key)返回的键对应的键值对);如果不存在这样的键,则返回 null

(5)Map.Entry<K,V> firstEntry();

  返回一个与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null

(6)Map.Entry<K,V> lastEntry();

  返回与此映射中的最大键关联的键-值映射关系;如果映射为空,则返回 null

(7)Map.Entry<K,V> pollFirstEntry();

  移除并返回与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。调用该方法之后,返回的键值对就不在该NavigableMap中了。

(8)Map.Entry<K,V> pollLastEntry();

  移除并返回与此映射中的最大键关联的键-值映射关系;如果映射为空,则返回 null。调用该方法之后,返回的键值对就不在该NavigableMap中了。

3、返回NavigableMap<K,V>结果的方法:

(1)NavigableMap<K,V> descendingMap();

  返回此映射中所包含映射关系的逆序视图。降序映射受此映射的支持,因此对映射的更改将反映在降序映射中,反之亦然。

(2)NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive);

  返回此NavigableMap的部分视图,其键的范围从 fromKey 到 toKey。如果 fromKey 和 toKey 相等,则返回的映射为空,除非 fromExclusive 和 toExclusive 都为 true。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。

(3)NavigableMap<K,V> headMap(K toKey, boolean inclusive);

  返回此NavigableMap映射的部分视图,其键小于(或等于,如果参数 inclusive 为 true) toKey。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。

(4)NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);

  返回此NavigableMap映射的部分视图,其键大于(或等于,如果 inclusive 为 true) fromKey。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。

3、返回NavigableSet<K>结果的方法:

(1)NavigableSet<K> navigableKeySet();

  返回此映射中所包含键的 NavigableSet 视图。set 的迭代器按升序返回键。set 受映射支持,因此对映射的更改将反映在 set 中,反之亦然。如果正在对 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,即通过 Iterator.remove、 Set.remove、 removeAll、 retainAll 和 clear 操作从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。

(2)NavigableSet<K> descendingKeySet();

  返回此映射中所包含键的逆序 NavigableSet 视图。set 的迭代器按降序返回键。set 受映射支持,因此对映射的更改将反映在 set 中,反之亦然。如果正在对 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,即通过 Iterator.remove、 Set.remove、 removeAll、 retainAll 和 clear 操作从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。

4、重新定义的与SortedMap<K,V>中相同定义的方法:

(1)SortedMap<K,V> subMap(K fromKey, K toKey);

(2)SortedMap<K,V> headMap(K toKey);

(3)SortedMap<K,V> tailMap(K fromKey);

以上,从NavigableMap中定义的方法更可以看出,它就是对SortedMap<K,V>接口的进一步扩展。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值