java - 如何对类型为 <Entry<Character, Integer>> 的 ArrayList 进行排序?

标签 java arraylist comparator

我有一个名为 map 的 HashMap,它将字符存储为键,将整数存储为值,然后使用以下代码将其存储到名为 entries 的 ArrayList 中:

Set<Entry<Character, Integer>> s = map.entrySet();
ArrayList<Entry<Character, Integer>> entries = new ArrayList<>(s);

现在我尝试根据整数值而不是键对这些条目进行排序。我尝试使用 lambda 表达式来实现 Comparator 接口(interface),但它不起作用。这是我的代码:

Collections.sort(sortedEntries, (sortedEntries.get(0), sortedEntries.get(1)) -> { 
    sortedEntries.get(0).getValue().compareTo(sortedEntries.get(1).getValue())
});

这些是我得到的错误:

Multiple markers at this line

  • Syntax error, insert ")" to complete Expression

  • The method sort(List, Comparator) in the type Collections is not applicable for the arguments (ArrayList>, Map.Entry, Map.Entry)

  • Syntax error on token "->", ; expected

最佳答案

您可以这样按值对列表进行排序:

list.sort(Comparator.comparing(Entry::getValue));

关于java - 如何对类型为 <Entry<Character, Integer>> 的 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243346/

相关文章:

java - Spring data couchbase文档java类继承

java - 用户定义对象的 ArrayList 的 indexOf() 不起作用

android - 根据ImageSlider更改按钮文本颜色

java - 使用嵌套在另一个类中的类中定义的比较器来实现 Collections.sort

c++ - 使用非默认比较谓词的集合容器

java - 如何在 Struts 2 的一个 Action 类中使用不同的验证方法

java - 运行我的程序会导致 java.lang.NoSuchMethodError : scala. Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;

java - ArrayList 全部移除

sql - SQL中的 "LIKE"和 "="有什么区别?

java - 如何在使用 spring Maven 插件构建时包含空目录?