62,614
社区成员
发帖
与我相关
我的任务
分享
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
public class MapSortDemo {
public static void main(String[] args) {
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
map.put(3, 8);
map.put(2, 3);
map.put(44, 89);
map.put(232, 33);
Map<Integer, Integer> resultMap = sortMapByValue(map); // 按Value进行排序
for (Map.Entry<Integer, Integer> entry : resultMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
public static Map<Integer, Integer> sortMapByValue(Map<Integer, Integer> map) {
if (map == null || map.isEmpty()) {
return null;
}
//排序value
Map<Integer, Integer> sortedMap = new LinkedHashMap<Integer, Integer>();
List<Map.Entry<Integer, Integer>> entryList = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(entryList, new Comparator<Map.Entry<Integer, Integer>>() {
public int compare(Entry<Integer, Integer> left, Entry<Integer, Integer> right) {
return left.getValue().compareTo(right.getValue());
}
});
//按照value创建map
Iterator<Map.Entry<Integer, Integer>> iter = entryList.iterator();
Map.Entry<Integer, Integer> tmpEntry = null;
while (iter.hasNext()) {
tmpEntry = iter.next();
sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
}
return sortedMap;
}
}