原创

Java中TreeMap按照KEY排序实现讲解

TreeMap 是一个有序的key-value集合,它是通过红黑树实现的,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。继承于AbstractMap,所以它是一个Map,即一个key-value集合。实现NavigableMap接口支持一系列的导航方法,比如返回有序的key集合。实现Cloneable接口能被克隆,实现java.io.Serializable接口支持序列化。

TreeMap的基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n) 。另外,TreeMap是非同步的。 它的iterator 方法返回的迭代器是fail-fastl的。

如何实现KEY排序,具体代码如下:

package com.test;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
TreeMap<Object, Object> tree = new TreeMap<Object, Object>();
tree.put(9, "w");
tree.put(10, "w");
tree.put(12, ".");
tree.put(11, "w");
tree.put(15, "o");
tree.put(13, "y");
tree.put(20, "o");
tree.put(21, "m");
tree.put(14, "o");
tree.put(19, "c");
tree.put(16, "d");
tree.put(17, "b");
tree.put(18, ".");
String url = "";
for (Iterator<Entry<Object, Object>> iterator = tree.entrySet().iterator(); iterator.hasNext();) {
Entry<Object, Object> it = iterator.next();
Object key = it.getKey();
Object value = it.getValue();
url += value;
System.out.println("key=" + key + "---value=" + value);
}
System.out.println("欢迎收藏:" + url);
}
}

执行输出结果:

key=9---value=w
key=10---value=w
key=11---value=w
key=12---value=.
key=13---value=y
key=14---value=o
key=15---value=o
key=16---value=d
key=17---value=b
key=18---value=.
key=19---value=c
key=20---value=o
key=21---value=m
欢迎收藏:www.yoodb.com

总结:

1)TreeMap如果不指定排序器,默认将按照key值进行升序排序,如果指定了排序器,则按照指定的排序器进行排序。

2)具体的排序规则,可以通过开发人员在int compare()方法中进行指定。

~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信