Java集合-SortedMap
SortedMap(java.util.SortedMap)接口是Map的子接口 , SortedMap中增加了元素的排序 , 这意味着可以给SortedMap中的元素排序 。
SortedMap的实现TreeMapSortedMap接口的实现TreeMap(java.util.TreeMap).
创建TreeMap可以通过TreeMap的构造函数创建TreeMap实例:
SortedMapsortedMap=newTreeMap();创建TreeMap使用Comparator可以使用Comparator的实现作为TreeMap构造函数的参数 , 这个Comparator将用于对存储在SortedMap中的键、值对的键进行排序:
Comparatorcomparator=newMyComparatorImpl();SortedMapsortedMap=newTreeMap(comparator);排序SortedMap中的排序顺序要么是元素的自然排序顺序(如果它们实现了java.lang.Comparable) , 或由Comparator确定的顺序 。
升序和降序排序默认的元素迭代顺序是升序 , 开始是最小的元素 , 然后逐渐变大 , 也可以降序迭代 , 可以使用TreeMap.descendingKeySet()方法 。
迭代SortedMap迭代SortedMap和迭代一般的Map一样 , 既然SortedMap的key是有顺序的 , 所以可以按顺序迭代key,通过调用SortedMap的keySet()迭代:
SortedMapsortedMap=newTreeMap();sortedMap.put("a","one");sortedMap.put("b","two");sortedMap.put("c","three");Iteratoriterator=sortedMap.keySet().iterator();while(iterator.hasNext()){Stringkey=(String)iterator.next();Stringvalue=https://pcff.toutiao.jxnews.com.cn/p/20200910/(String)sortedMap.get(key);}如果需要降序迭代则调用sortedMap.descendingKeySet().iterator()的方法:
SortedMapsortedMap=newTreeMap();sortedMap.put("a","one");sortedMap.put("b","two");sortedMap.put("c","three");Iteratoriterator=sortedMap.descendingKeySet().iterator();while(iterator.hasNext()){Stringkey=(String)iterator.next();Stringvalue=https://pcff.toutiao.jxnews.com.cn/p/20200910/(String)sortedMap.get(key);}获取Comparator如果创建SortedMap时使用了Comparator , 则可以通过SortedMap的comparator()方法获取Comparator:
Comparatorcomparator=sortedMap.comparator();获取第一个KeySortedMap接口有个firstKey()方法可以获取第一个元素:
StringfirstKey=(String)sortedMap.firstKey();获取最后一个KeySortedMap接口有个lastKey()方法可以获取最后一个元素:
StringlastKey=(String)sortedMap.lastKey();HeadMapSortedMap接口有个headMap()方法 , 返回一个新的Map,这个方法有个参数key , 返回的Map中的元素小于这个参数key:
SortedMapsortedMap=newTreeMap();sortedMap.put("a","1");sortedMap.put("c","3");sortedMap.put("e","5");sortedMap.put("d","4");sortedMap.put("b","2");SortedMapheadMap=sortedMap.headMap("c");System.out.println(headMap);headMap中包含("a","1")和("b","2") , 因为"a"和"b"小于"c" 。
尾部MapSortedMap接口有个tailMap()方法 , 这个方法返回大于等于参数key的键值对:
SortedMapsortedMap=newTreeMap();sortedMap.put("a","1");sortedMap.put("c","3");sortedMap.put("e","5");sortedMap.put("d","4");sortedMap.put("b","2");SortedMaptailMap=sortedMap.tailMap("c");System.out.println(tailMap);tailMap中包含("c","3") , ("d","4")和("e","5") , 因为"c","d"和"e"大于或者等于参数"c" 。
子mapSortedMap中还有个subMap() , 这个方法返回SortedMap的一个子Map 。 subMap()方法中有两个参数是key的值 , 大于等于第一个key,小于第二个key:
SortedMapsortedMap=newTreeMap();sortedMap.put("a","1");sortedMap.put("c","3");sortedMap.put("e","5");sortedMap.put("d","4");sortedMap.put("b","2");SortedMapsubMap=sortedMap.subMap("b","e");System.out.println(subMap);subMap中包含("b","2) , ("c","3")和("d","4") , 因为"b","c"和"d"都大于等于"b"并且小于"e" 。
【Java集合-SortedMap】参考:
推荐阅读
- 不会做菜的朋友集合了,今天教大家做这几道菜
- 时尚|潮流时尚与国际同步!虎门四大女装品牌集合秀将亮相富民时装城
- 护肤用品|凯特王妃护肤用品大集合!最便宜的还不到6英镑!
- 配饰|堪称批发市场集合店!衣服配饰玩具电器美妆...双11过了我还能买~
- 立冬后喝这些,我很爱的养生米糊食谱集合来喽,一周早餐粥不重样
- 主神崛起|推三本幕后黑手流小说,一本集合百家气运,另一本成就超神机械师
- 斗鱼直播平台|以下6位主播集合,准备搞件大事
- 强磁场|第三届进博会上的网红珠宝展厅!MATRO GBJ海外珠宝集合店显现“强磁场”
- 品牌|美罗海外珠宝集合店携20家海外珠宝品牌亮相第三届上海进博会
- 游侠网|任天堂发布了《集合啦!动物森友会》秋季新广告!
