原创

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),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信