对TreeMap进行排序
package org.sh.testpaper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class TreeMapSort {
public static void main(String[] args) {
sortByKey();
System.out.println("=====================");
sortByValue();
}
public static void sortByKey() {
Map<String, Integer> treeMap = new TreeMap<String, Integer>(
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);//降序
}
});
treeMap.put("a", 12);
treeMap.put("c", 12);
treeMap.put("e", 12);
treeMap.put("d", 12);
Iterator<String> iter = treeMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println("key=" + key + ",value=" + treeMap.get(key));
}
}
public static void sortByValue(){
Map<String, Integer> treeMap = new TreeMap<String, Integer>();
treeMap.put("a", 12);
treeMap.put("c", 14);
treeMap.put("e", 13);
treeMap.put("d", 15);
List<Entry<String,Integer>> arrayList = new ArrayList<Entry<String,Integer>>(treeMap.entrySet());
//给sort传入一个Comparator实例,实现自定义排序,Comparator只是一个挽救的类(接口)
Collections.sort(arrayList,new myComparator());
for(Entry<String,Integer> mapper: arrayList){
System.out.println(mapper.getKey()+"-->"+mapper.getValue());
}
}
}
class myComparator implements Comparator<Map.Entry<String,Integer>>{
public int compare(Entry<String, Integer> o1,
Entry<String, Integer> o2) {
return o1.getValue()-o2.getValue();
}
}
key=e,value=12
key=d,value=12
key=c,value=12
key=a,value=12
=====================
a-->12
e-->13
c-->14
d-->15