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

我有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上出现此错误:
数组类型中的方法sort(T [],Comparator)不适用于参数(ArrayList,myComp)
我怎样才能解决这个问题?

最佳答案

moveList是列表而不是数组,请使用Collections中的sort方法:

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

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

10-10 22:28