Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按每个汉堡的成本降序排序,该汉堡是带有Collections.sort的ArrayList_Java_Sorting_Arraylist_Collections_Compiler Errors - Fatal编程技术网

Java 按每个汉堡的成本降序排序,该汉堡是带有Collections.sort的ArrayList

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

我正在尝试对ArrayList中的汉堡订单按每个汉堡的成本降序排序。汉堡订单是从一个文本文件中读取的,该文件包含以下字段:大小、bun和基于大小的配料(字符串数组),配料我还有另一个称为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类来正确地进行比较。将其用作第二个参数

公共静态无效排序(列表、比较器c)


您必须实现自己的Comparator类来正确地进行比较。将其用作第二个参数

公共静态无效排序(列表、比较器c)


Pizza
没有实现
compariable
,所以
集合
不知道如何比较它我们这里说的是Pizza还是burgers?你使用的是生的类型吗?否则编译器应该抱怨,而不是在运行时编译和崩溃。
Pizza
没有实现
Comparable
,所以
Collections
不知道如何比较它。我们这里说的是Pizza还是burgers?您使用的是原始类型吗?否则编译器应该抱怨,而不是在运行时编译和崩溃。