我正在尝试按每个汉堡的成本降序对 ArrayList 中的汉堡订单进行排序。汉堡订单是从文本文件中读取的,其中包含以下字段:大小、面包和基于大小的配料(字符串数组),并且配料我还有另一种称为 BurgerCost 的方法,它计算每个汉堡的成本。根据我的研究,最好的方法似乎是使用 Collections.sort 来实现。但是,我收到几个错误,例如:
Exception in thread "main" java.lang.ClassCastException: Pizza
cannot be cast to java.lang.Comparable java.util.Collections$ReverseComparator.compare(Collections.java:5108)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
at java.util.TimSort.sort(TimSort.java:216)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
我使用下面的代码对 ArrayList 进行排序:
public void sortBurger() {
Collections.sort(burger, Collections.reverseOrder());
} // method
最佳答案
您必须实现自己的 Comparator 类才能正确进行比较。将其用作第二个参数。
public static void sort(List list,Comparator c)
关于java - 按每个汉堡的成本降序排序,这是一个带有 Collections.sort 的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48613569/