import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/*
*
* 对HashMap的value从大到小排序
*/
public class Test3 {
public static void main(String[] args) throws IOException {
Map<String, Integer> map = new HashMap();
map.put("hello", 2);
map.put("sdfhauisd", 5);
map.put("3nsdasduiy", -12);
//每一个Map.Entry<K, V>存放一对键值对,entrySet的定义是 Set<Map.Entry<K, V>> entrySet;
List<Map.Entry<String, Integer>> list = new LinkedList<>(map.entrySet());
//这里要用泛型,否则compare以Map.Entry<K, V>为参数,不会覆盖Comparator接口的compare(Object o1, Object o2)方法
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
//第一个数比第二个数大,返回正数,和自然顺序相同的排序规则。
//第一个数比第二个数大,返回负数,和自然顺序相反的排序规则。
return o2.getValue() - o1.getValue();
}
});
Iterator<Map.Entry<String, Integer>> iter = list.iterator();
while(iter.hasNext()){
Map.Entry<String, Integer> item = iter.next();
System.out.println(item.getKey() + " " + item.getValue());
}
}
}
HashMap排序
最新推荐文章于 2023-02-11 02:05:37 发布