map排序
以下方法可套用
package com.youdao.baike.test;
import java.util.*;
public class Test{
public static void main(String[] args) {
KeySort();
KeyIntSort();
ValueSort();
ValueIntSort();
}
public static void KeySort() {
Map<String, String> map = new TreeMap<String, String>(
new Comparator<String>() {
public int compare(String obj1, String obj2) {
// 降序排序
return obj2.compareTo(obj1);
}
});
map.put("bd", "ccccc");
map.put("da", "aaaaa");
map.put("cd", "bbbbb");
map.put("a", "aa");
Set<String> keySet = map.keySet();
Iterator<String> iter = keySet.iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key + ":" + map.get(key));
}
}
public static void KeyIntSort() {
Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(1, "ddddd");
map.put(3, "bbbbb");
map.put(2, "aaaaa");
map.put(4, "ccccc");
//这里将map.entrySet()转换成list
List<Map.Entry<Integer,String>> list = new ArrayList<Map.Entry<Integer,String>>(map.entrySet());
//然后通过比较器来实现排序
Collections.sort(list,new Comparator<Map.Entry<Integer,String>>() {
//升序排序
public int compare(Map.Entry<Integer, String> o1,
Map.Entry<Integer, String> o2) {
return o1.getKey() - o2.getKey();
}
});
for(Map.Entry<Integer,String> mapping:list){
System.out.println(mapping.getKey()+":"+mapping.getValue());
}
}
public static void ValueSort() {
Map<String, String> map = new TreeMap<String, String>();
map.put("a", "ddddd");
map.put("c", "bbbbb");
map.put("d", "aaaaa");
map.put("b", "ccccc");
//这里将map.entrySet()转换成list
List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
//然后通过比较器来实现排序
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//升序排序
public int compare(Map.Entry<String, String> o1,
Map.Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for(Map.Entry<String,String> mapping:list){
System.out.println(mapping.getKey()+":"+mapping.getValue());
}
}
public static void ValueIntSort() {
Map<String, Integer> map = new TreeMap<String, Integer>();
map.put("a", 2);
map.put("c", 3);
map.put("d", 1);
map.put("b", 4);
//这里将map.entrySet()转换成list
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
//然后通过比较器来实现排序
Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {
//升序排序
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
//return o1.getValue().compareTo(o2.getValue());
return o1.getValue() - o2.getValue();
}
});
for(Map.Entry<String,Integer> mapping:list){
System.out.println(mapping.getKey()+":"+mapping.getValue());
}
}
}