1、按照key排序:
利用TreeMap,TreeMap中的數據是根據key值對象中的對比方法(comparaTo)的運行結果進行存儲,所以可以直接利用TreeMap將Map中的key進行排序。
2、按照value排序:
將待排序Map中的所有元素置於一個list列表中,然後使用Collections的一個靜態方法 sort(List<T> list, Comparator<? super T> c)
來排序list,用比較器定義比較規則。
上代碼:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
public class TreeMapSort {
public static void main(String[] args) {
Map<String, String> treeMap = new TreeMap<String, String>();
treeMap.put("1", "5.369");
treeMap.put("5", "4.369");
treeMap.put("3", "8.369");
treeMap.put("2", "8.366");
// 1、按照key排序:TreeMap中的數據是根據key值對象中的對比方法(comparaTo)的運行結果進行存儲
System.out.println(treeMap);
//2、 按照value排序:
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(treeMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Entry<String, String> arg0,
Entry<String, String> arg1) {
// 降序排列
return arg1.getValue().compareTo(arg0.getValue());
}
});
for (Map.Entry<String, String> mapping : list) {
System.out.println(mapping.getKey() + " : " + mapping.getValue());
}
}
}
結果: