package
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class MapValueComparator {
public static void printMap(Map<String, Long> map) {
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
public static Map<String, Long> sortMap(Map<String, Long> oldMap) {
ArrayList<Map.Entry<String, Long>> list = new ArrayList<Map.Entry<String, Long>>(oldMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Long>>() {
@Override
public int compare(Entry<java.lang.String, Long> arg0, Entry<java.lang.String, Long> arg1) {
// return arg0.getValue() - arg1.getValue(); //asc
return (int) (arg1.getValue() - arg0.getValue()); // desc
}
});
Map<String, Long> newMap = new LinkedHashMap<String, Long>();
for (int i = 0; i < list.size(); i++) {
newMap.put(list.get(i).getKey(), list.get(i).getValue());
}
return newMap;
}
public static void main(String[] args) throws Exception {
// TODO code application logic here
Map<String, Long> myMap = new HashMap<String, Long>();
myMap.put("1", 1l);
myMap.put("2", 4l);
myMap.put("3", 3l);
myMap.put("4", 9l);
myMap.put("5", 6l);
myMap.put("6", 2l);
myMap = sortMap(myMap);
printMap(myMap);
}
}
map 按value排序
最新推荐文章于 2021-03-08 20:18:09 发布