Java-Collection源码分析(十二)——SortedMap和NavigableMap
来源:互联网 发布:熊猫智能采集软件 编辑:程序博客网 时间:2024/05/01 15:34
一、SortedMap
public interface SortedMap<K,V> extends Map<K,V> {//返回用于对该地图中的键进行排序的比较器,如果此map使用其键的自然排序,则返回null。 Comparator<? super K> comparator(); //返回该地图部分的视图,其关键范围从fromKey(包括)到toKey(独占)。 SortedMap<K,V> subMap(K fromKey, K toKey); //返回该map的部分key严格小于toKey的视图。 SortedMap<K,V> headMap(K toKey); //返回此map部分的视图,其key大于或等于fromKey。 SortedMap<K,V> tailMap(K fromKey); //返回当前在此map中的第一个(最低)key K firstKey(); //返回当前在此map中的最后(最高)key。 K lastKey(); //返回此map中包含的key的Set视图。 Set<K> keySet(); //返回此映射中包含的value的集合视图。 Collection<V> values(); //返回此映射中包含的映射的Set视图。 Set<Map.Entry<K, V>> entrySet();}
二、NavigableMap
扩展了SortedMap的导航方法,返回给定搜索目标的最接近的匹配。方法lowerEntry,floorEntry,ceilingEntry和higherEntry返回与键分别小于,小于或等于大于或等于且大于给定key的Map.Entry对象,如果没有这样的key,返回null。类似地,方法lowerKey,floorKey,ceilingKey和higherKey只返回相关的key。所有这些方法都设计用于定位,而不是遍历条目。
可以按升序或降序键顺序访问和遍历NavigableMap。 descendingMap方法返回map的视图,其中所有关系和方向方法都是反转的。升序操作和观点的性能可能比降序更快。方法subMap,headMap和tailMap与接受命名的SortedMap方法不同,用于接受描述下限和上限是包容性还是排除的附加参数。任何NavigableMap的子图都必须实现NavigableMap接口。
此接口另外定义了firstEntry,pollFirstEntry,lastEntry和pollLastEntry方法,返回和/或删除最小和最大的映射(如果有),否则返回null。
指定方法subMap(K,K),headMap(K)和tailMap(K)返回SortedMap以允许对SortedMap的现有实现进行兼容升级来实现NavigableMap,但是鼓励该接口的扩展和实现来覆盖这些方法返回NavigableMap。类似地,SortedMap.keySet()可以覆盖以返回NavigableSet。
public interface NavigableMap<K,V> extends SortedMap<K,V> { //返回与严格小于给定key的最大key相关联的key-value映射,如果没有这样的key,则返回null Map.Entry<K,V> lowerEntry(K key); //返回严格小于给定key的最大key,如果没有这样的key,则返回null K lowerKey(K key); //返回与小于或等于给定key的最大key相关联的key-value映射,如果没有此key,则返回null Map.Entry<K,V> floorEntry(K key); //返回小于或等于给定key的最大key,如果没有这样的key,则返回null K floorKey(K key); //返回与大于或等于给定key的最小key相关联的key-value映射,如果没有此key,则返回null Map.Entry<K,V> ceilingEntry(K key); //返回大于或等于给定key的最小key,如果没有这样的key,则返回nul K ceilingKey(K key); // 返回严格大于给定的key,与最小key相关联的key-value映射,如果没有这样的键,则返回null。 Map.Entry<K,V> higherEntry(K key); //返回严格大于给定键的最小键,如果没有这样的键返回null。 K higherKey(K key); //返回与此映射中的最小键相关联的键值映射,如果映射为空,则返回null。 Map.Entry<K,V> firstEntry(); //返回与该地图中最大关键字关联的键值映射,如果地图为空,则返回null。 Map.Entry<K,V> lastEntry(); //删除并返回与该映射中的最小密钥相关联的键值映射,如果映射为空,则返回null。 Map.Entry<K,V> pollFirstEntry(); //删除并返回与该地图中最大键相关联的键值映射,如果地图为空,则返回null。 Map.Entry<K,V> pollLastEntry(); //返回此映射中包含的映射的反向排序视图。 NavigableMap<K,V> descendingMap(); //返回此映射中包含的键的NavigableSet视图。 NavigableSet<K> navigableKeySet(); //返回此映射中包含的键的相反顺序NavigableSet视图。 NavigableSet<K> descendingKeySet(); //返回该地图部分的视图,其关键范围从fromKey到toKey。 NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive); //返回该地图的部分的视图,其键值小于(或等于,如果包含值为true)toKey。 NavigableMap<K,V> headMap(K toKey, boolean inclusive); //返回这个地图的部分的视图,其键大于(或等于,如果包含值为true)fromKey。 NavigableMap<K,V> tailMap(K fromKey, boolean inclusive); //返回该地图部分的视图,其关键范围从fromKey(包括)到toKey(独占)。 SortedMap<K,V> subMap(K fromKey, K toKey); //返回该地图的部分密钥严格小于toKey的视图。 SortedMap<K,V> headMap(K toKey); //返回此地图部分的视图,其键大于或等于fromKey。 SortedMap<K,V> tailMap(K fromKey);}请给我一个动力和勇气去分析TreeMap,包括里面红黑树的内容!
阅读全文
0 0
- Java-Collection源码分析(十二)——SortedMap和NavigableMap
- java源码分析之集合框架SortedMap 、 NavigableMap 、Dictionary 09
- 读JSE源码(五)SortedMap & NavigableMap
- Java集合源码学习(21)_Map接口的子接口SortedMap和NavigableMap
- Java集合源码学习(21)_Map接口子接口SortedMap和NavigableMap
- Java-Collection源码分析(十二)——Set、AbstractSet、HashSet和LinkedHashSet
- Java集合之SortedMap、NavigableMap
- Java-Collection源码分析(一)——Collection接口和AbstractCollection类
- Core Java (二十四) SortedMap,NavigableMap,SortedSet,NavigableSet接口
- java collection——源码分析
- Java-Collection源码分析(四)——ArrayList
- Java-Collection源码分析(六)——Map接口
- Java-Collection源码分析(七)——HashMap
- Java-Collection源码分析(八)——LinkedHashMap
- Java-Collection源码分析(九)——WeakHashMap
- Java-Collection源码分析(十)——hashTable
- Java-Collection源码分析(十一)—— IdentityHashMap
- Java-Collection源码分析(十三)——TreeMap
- 链接
- SDL2入门教程(05_Optimized Surface Loading and Soft Stretching)
- (CodeForces
- MFC对话框控件的属性、方法、消息
- Spring MVC运行原理
- Java-Collection源码分析(十二)——SortedMap和NavigableMap
- 学习笔记-Large scale machine learning
- LINUX定时执行SHELL脚本实现DB2数据库操作,crontab无法正常识别执行
- 110. Balanced Binary Tree
- JZOJ5390. 【NOIP2017提高A组模拟9.26】逗气
- linux 下常用命令
- RBAC权限管理
- javascript数组查重
- 固定表格布局