java - 通过比较器对 ArrayList 进行排序

标签 java arraylist comparator

我有一个包含 CoolMove 元素的 ArrayList,并希望根据 CoolMove.getValue() 返回的值对其进行排序(这些值是 double 值)。我读到您可以使用比较器类进行排序,为了尝试执行此操作,我做了以下操作:

我有 2 个类,其中一个具有以下代码行:

ArrayList<CoolMove> moveList = getMoves();
Arrays.sort(fishMoves, new myComp());

我的第二类是这个比较器:

class myComp implements Comparator<CoolMove> {

    @Override
    public int compare(CoolMove move1, CoolMove move2) {
        return Double.compare(move1.getValue(), move2.getValue());
    }
}

我的问题是在 Arrays.sort 中出现此错误: Arrays 类型中的方法 sort(T[], Comparator) 不适用于参数 (ArrayList, myComp) 我该如何解决这个问题?

最佳答案

moveList 是一个列表而不是数组,使用 Collections 中的排序方法:

Collections.sort(moveList, new myComp());

关于java - 通过比较器对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596430/

相关文章:

c++ - 是否有一个用于 std::set(或 std::map)的 STL 比较器,它带有提供基于值的查找的 shared_ptr 键? std::owner_less 究竟做了什么?

java - 当提供自定义比较器或元素实现 Comparable 时,如何拆分方法中的逻辑?

java - 使用可比较或比较器接口(interface)使用字符串 s1 的顺序对字符串 s2 进行排序

java - 将 java.sql.Time 对象注入(inject)到 bean 中 - spring xml 依赖注入(inject)

java - Tomcat : Required request part 'file' is not present

java - 通过可比较接口(interface)对 ArrayList<Object> 进行排序

java - 将数组列表中的值添加到 int

将私钥作为字符串的 Java SFTP 客户端

java - java中的条件运算符&&

java - 将 HashMap 从 Map<String, Boolean> 反转为 Map<Boolean, List<String>>