java - 按每个汉堡的成本降序排序,这是一个带有 Collections.sort 的 ArrayList

标签 java sorting arraylist collections compiler-errors

我正在尝试按每个汉堡的成本降序对 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/

相关文章:

java - 如何捕获 JTA-Transaction 中抛出的异常?

'streaming'视频文件的Java HTTP进程

javascript - 基于技能指数从 10 人列表中组成两个团队的算法

java - 为什么 math.ceiling 不四舍五入我的数字? java

Java-将字符串分割成数组

sorting - 方案 - 使用累积排序

algorithm - 分析简单的冒泡排序循环(最坏情况)

Java 对对象的数组列表进行排序

java - 如何对列表使用递归方法

java - 将 ArrayList<int[]> 转换为 int[][]