如何对列表进行排序<字符串,整数>?
2022-09-05 00:00:40
我有一个存储单词及其频率的通信列表,如下所示Pair
private List<Pair<String, Integer>> words = new ArrayList<Pair<String, Integer>();
我正在尝试对它进行排序,以便当我迭代它以打印单词时,我希望频率最高的单词首先出现。
我尝试过尝试实现,但大多数示例与使用配对列表并不相似Comparable
我有一个存储单词及其频率的通信列表,如下所示Pair
private List<Pair<String, Integer>> words = new ArrayList<Pair<String, Integer>();
我正在尝试对它进行排序,以便当我迭代它以打印单词时,我希望频率最高的单词首先出现。
我尝试过尝试实现,但大多数示例与使用配对列表并不相似Comparable
按数字的降序对元素进行排序
Collections.sort(words, Comparator.comparing(p -> -p.getRight()));
这将按降序使用货币对的“右”。
这使用Java 8。名义上,您正在对值进行装箱并使用Integer.compareTo。
但是,通过转义分析,可以消除拳击,并且您不会创建任何对象。
您可以使用自定义比较器
:
Collections.sort(words, new Comparator<Pair<String, Integer>>() {
@Override
public int compare(final Pair<String, Integer> o1, final Pair<String, Integer> o2) {
// TODO: implement your logic here
}
});