Java中的Map【三】NavigableMap接口 2021-09-21 07:14 176阅读 0赞 ** 所使用的jdk版本为1.8版本**,先看一下NavigableMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMDc2MzQ1_size_16_color_FFFFFF_t_70][] ### 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>接口的进一步扩展。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMDc2MzQ1_size_16_color_FFFFFF_t_70]: /images/20210920/d287d72a2c5148598def85ea2f921d09.png 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 Java中的Map【一】Map接口 一 JDK中的Map继承实现关系 不经意间看了Java中LinkedHashMap和LinkedHashSet的源码实现,觉得一些地方还是挺有意思的。之前 谁借莪1个温暖的怀抱¢/ 2021年09月21日 07:04/ 0 赞/ 178 阅读
相关 Java中的Map【三】NavigableMap接口 所使用的jdk版本为1.8版本,先看一下NavigableMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3 一时失言乱红尘/ 2021年09月21日 07:14/ 0 赞/ 177 阅读
相关 Java中的Map【四】ConcurrentMap接口 所使用的jdk版本为1.8版本,先看一下ConcurrentMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3poZW5n 港控/mmm°/ 2021年09月21日 07:20/ 0 赞/ 190 阅读
相关 Java中的Map【五】ConcurrentNavigableMap接口 所使用的jdk版本为1.8版本,先看一下ConcurrentNavigableMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_ 刺骨的言语ヽ痛彻心扉/ 2021年09月21日 07:24/ 0 赞/ 177 阅读
相关 Java-map接口 package java.util;//在util包下 public interface Map<K,V> {//K:key,v:value //1 约定不等于承诺〃/ 2021年09月28日 09:22/ 0 赞/ 243 阅读
相关 java-Map接口 Map接口的概述和使用 -概述:public interface Map<K,V> -特点:\将键映射到值的对象 \一个映射不能包含重复的键 深藏阁楼爱情的钟/ 2022年01月28日 22:53/ 0 赞/ 116 阅读
相关 Java NavigableMap 接口 Java NavigableMap 接口 Java 集合框架的NavigableMap接口提供了在地图条目之间导航的功能。 它被认为是SortedMap的一种。 实现... 朱雀/ 2022年02月19日 20:00/ 1 赞/ 8743 阅读
相关 java中的Map接口 java中的Map接口 实现Map接口的类用来存储——键值对 Map接口的实现类有HashMap和TreeMap等 键值不能重复(键相当与索引) TestMap. 水深无声/ 2022年04月06日 17:40/ 0 赞/ 65 阅读
相关 java中容器类和接口总结(三):Map ![70][] 如上图,java中的Map与collection接口不同,map中的元素由键值对(key,value)组成。 Map接口中键和值一一映射. 可以通过键来获取 缺乏、安全感/ 2022年05月26日 10:10/ 0 赞/ 50 阅读
相关 java map接口 Map接口概述 1. 实现Map接口的集合类用来存储“键-值”映射对。key-value 2. Map实现类中存储的“键-值”映射对是通过键来唯一标识,Map底层的“键 ╰+攻爆jí腚メ/ 2022年06月10日 09:54/ 0 赞/ 49 阅读
还没有评论,来说两句吧...