我有一份commmons的清单 Pair
它存储单词及其频率,如下所示
private List<Pair<String, Integer>> words = new ArrayList<Pair<String, Integer>();
我试图对它进行排序,这样当我遍历它来打印单词时,我希望频率最高的单词首先出现。
我试着和他玩 Comparable
但大多数示例与使用成对列表不同
我有一份commmons的清单 Pair
它存储单词及其频率,如下所示
private List<Pair<String, Integer>> words = new ArrayList<Pair<String, Integer>();
我试图对它进行排序,这样当我遍历它来打印单词时,我希望频率最高的单词首先出现。
我试着和他玩 Comparable
但大多数示例与使用成对列表不同
4条答案
按热度按时间hwazgwia1#
您可以使用自定义
Comparator
:xyhw6mcr2#
按数字降序排列元素
这将按降序使用对中的“右”。
它使用Java8。从概念上讲,您正在装箱该值并使用integer.compareto。
但是,通过转义分析,可以消除装箱,并且您不能创建任何对象。
w80xi6nr3#
你好,我想这个应该适合你。
5m1hhzi44#
将java 8 lambda与
Comparator.comparing
(您还需要颠倒顺序):如果只想按频率降序打印值,最简单的方法是: