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 tree = new TreeMap();
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> iterator = tree.entrySet().iterator(); iterator.hasNext();) {
Entry 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()方法中进行指定。