这里要用到一个Comparator的接口,里面只有一个方法,compare(),我们实现这个接口就好,很简单
private class ValueComparator implements Comparator这里为啥用mp2-mp1呢,因为我想要的排序结果是从大到小,默认的是从小到大排序。这样调换一下位置就不要再写一个循环,倒叙输出了。> { public int compare(Map.Entry mp1, Map.Entry mp2) { return mp2.getValue() - mp1.getValue(); } }
使用的时候也很简单,调用Collections工具类的sort方法时,传入我们自己写的这个实现类的对象,作为参数就可以了。先根据实际需求,创建一个List。
Mapmap=new HashMap<>(); List > sort=new ArrayList<>();
然后直接就可以排序啦。
sort.addAll(map.entrySet()); ValueComparator vc=new ValueComparator(); Collections.sort(sort,vc);很简单吧。