Java中的Map【三】NavigableMap接口 2021-09-20 23:14 524阅读 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集合之NavigableMap与NavigableSet接口 本文接着上篇介绍SortedMap和SortedSet接口,介绍他们的扩展接口NavigableMap与NavigableSet接口, 提供了针对给定搜索目标返回最接近匹 一时失言乱红尘/ 2022年12月14日 09:08/ 0 赞/ 181 阅读
相关 java的Map接口 [java的Set接口][java_Set] 文章目录 java的Map接口 Map的创建 Map的常用方法 矫情吗;*/ 2022年10月19日 04:19/ 0 赞/ 204 阅读
相关 java中容器类和接口总结(三):Map ![70][] 如上图,java中的Map与collection接口不同,map中的元素由键值对(key,value)组成。 Map接口中键和值一一映射. 可以通过键来获取 缺乏、安全感/ 2022年05月26日 02:10/ 0 赞/ 209 阅读
相关 java中的Map接口 java中的Map接口 实现Map接口的类用来存储——键值对 Map接口的实现类有HashMap和TreeMap等 键值不能重复(键相当与索引) TestMap. 水深无声/ 2022年04月06日 09:40/ 0 赞/ 275 阅读
相关 Java NavigableMap 接口 Java NavigableMap 接口 Java 集合框架的NavigableMap接口提供了在地图条目之间导航的功能。 它被认为是SortedMap的一种。 实现... 朱雀/ 2022年02月19日 12:00/ 1 赞/ 10945 阅读
相关 Java中的Map【五】ConcurrentNavigableMap接口 所使用的jdk版本为1.8版本,先看一下ConcurrentNavigableMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_ 刺骨的言语ヽ痛彻心扉/ 2021年09月20日 23:24/ 0 赞/ 382 阅读
相关 Java中的Map【四】ConcurrentMap接口 所使用的jdk版本为1.8版本,先看一下ConcurrentMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3poZW5n 港控/mmm°/ 2021年09月20日 23:20/ 0 赞/ 462 阅读
相关 Java中的Map【三】NavigableMap接口 所使用的jdk版本为1.8版本,先看一下NavigableMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3 一时失言乱红尘/ 2021年09月20日 23:14/ 0 赞/ 525 阅读
相关 Java中的Map【二】SortedMap接口 所使用的jdk版本为1.8版本,先看一下SortedMap在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3poZW5na 野性酷女/ 2021年09月20日 23:06/ 0 赞/ 423 阅读
相关 Java中的Map【一】Map接口 一 JDK中的Map继承实现关系 不经意间看了Java中LinkedHashMap和LinkedHashSet的源码实现,觉得一些地方还是挺有意思的。之前 谁借莪1个温暖的怀抱¢/ 2021年09月20日 23:04/ 0 赞/ 375 阅读
还没有评论,来说两句吧...