先上代码:
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
HashMap<String,Integer> map=new HashMap<>();
map.put("zhangsan",1);
map.put("lisu",2);
map.put("wangwu",3);
List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue()-o2.getValue();
}
});
}
}
具体步骤:
- 用list存储视图。
- 将list传入sort方法并重写比较器
注意数据类型也是要注明是视图的形式,且视图里面再说明键值的数据类型。
如果这里的Key的类型也是Integer,重写的时候只需要把getValue()换成getKey()就能实现对键排序。
熟练了之后还可以写成Lambda表达式:
List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet());
Collections.sort(list, (o1, o2) -> o2.getValue()-o1.getValue());
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)