1.问题描述
某些场景需要对map按value进行排序,我的一个开发场景就是如此。
取出差值倒叙排序,分析前80%。
2.上代码
不多说,直接上代码
public class Test {
private static final Logger logger = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
HashMap<String, Double> map = new HashMap<>();
map.put("zhangsan",23.2);
map.put("zhangsan2",24.2);
map.put("zhangsan3",21.2);
map.put("zhangsan4",25.2);
ArrayList<Map.Entry<String, Double>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Double>>() {
@Override
public int compare(Map.Entry<String, Double> o1, Map.Entry<String, Double> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
}
}
关键点就是使用:Collections.sort() 方法,重写比较方法;