Java 按每个汉堡的成本降序排序,该汉堡是带有Collections.sort的ArrayList
我正在尝试对ArrayList中的汉堡订单按每个汉堡的成本降序排序。汉堡订单是从一个文本文件中读取的,该文件包含以下字段:大小、bun和基于大小的配料(字符串数组),配料我还有另一个称为burgerCost的方法,该方法计算每个汉堡的成本。根据我的研究,似乎最好的方法是使用Collections.sort实现。但是,我收到了一些错误,例如:Java 按每个汉堡的成本降序排序,该汉堡是带有Collections.sort的ArrayList,java,sorting,arraylist,collections,compiler-errors,Java,Sorting,Arraylist,Collections,Compiler Errors,我正在尝试对ArrayList中的汉堡订单按每个汉堡的成本降序排序。汉堡订单是从一个文本文件中读取的,该文件包含以下字段:大小、bun和基于大小的配料(字符串数组),配料我还有另一个称为burgerCost的方法,该方法计算每个汉堡的成本。根据我的研究,似乎最好的方法是使用Collections.sort实现。但是,我收到了一些错误,例如: Exception in thread "main" java.lang.ClassCastException: Pizza cannot be cast
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类来正确地进行比较。将其用作第二个参数 公共静态无效排序(列表、比较器c)
您必须实现自己的Comparator类来正确地进行比较。将其用作第二个参数 公共静态无效排序(列表、比较器c)
Pizza
没有实现compariable
,所以集合
不知道如何比较它我们这里说的是Pizza还是burgers?你使用的是生的类型吗?否则编译器应该抱怨,而不是在运行时编译和崩溃。Pizza
没有实现Comparable
,所以Collections
不知道如何比较它。我们这里说的是Pizza还是burgers?您使用的是原始类型吗?否则编译器应该抱怨,而不是在运行时编译和崩溃。