在对每个受人尊敬的对象进行排序后,我试图找出一种方法来重新分配优先级。
每个对象都使用 setter 从用户那里获得优先级。然后我使用 getPriorities 创建一个 Int 数组,以便对它们进行排序。
Food[] list = new Food[3];
int[] priorityArray = {(int) ((Fruit) list[0]).getPriority(), (int) ((Fruit) list[1]).getPriority(), (int) ((Meat) list[2]).getPriority() };
在对优先级整数数组进行排序后,如何将每个优先级重新分配给正确的对象?制作数组时,我将 getPriorities 转换为常规整数。
我会直接通过 getPriorities 对优先级进行排序,如下所示:
Food temp;
System.out.println("\nsorted list:\n");
for (int i = 0; i < list.length; i++) {
for (int j = 1; j < (list.length - i); j++) {
if (((Fruit) list[j-1]).getPriority() > ((Fruit) list[j]).getPriority()||((Fruit) list[j-1]).getPriority() > ((Meat) list[j]).getPriority()||((Meat) list[j-1]).getPriority() > ((Fruit) list[j]).getPriority()||((Meat) list[j-1]).getPriority() > ((Meat) list[j]).getPriority())
{
temp = list[j - 1];
list[j - 1] = list[j];
list[j] = temp;
}
}
System.out.println(list[i]);
但是当我这样做时会出错:
线程“主”java.lang.ClassCastException 中的异常:homework4.orange 不能在 homework4.main4.main(main4.java:114) 处转换为 homework4.Meat