gpt4 book ai didi

java,将对象的优先级自行放入数组中,然后将排序后的优先级重新分配给正确的对象HW

转载 作者:行者123 更新时间:2023-12-01 23:28:52 24 4
gpt4 key购买 nike

我正在尝试找出一种方法,在对每个受尊重的对象进行排序后重新分配优先级。

每个对象都使用 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]);

但是当我这样做时出现错误:

线程“main”中的异常java.lang.ClassCastException:homework4.orange无法在homework4.main4.main(main4.java:114)处转换为homework4.Meat

最佳答案

在 if 语句中,您有

 ((Meat) list[j]).getPriority()

当 j = 1 时,您将 Fruit 对象类型转换为 Meat 对象。这会引发错误。

是否可以删除 if 语句中的类型转换?看来 getPriority() 方法可以放入 Food 类中,并在需要时重写。

关于java,将对象的优先级自行放入数组中,然后将排序后的优先级重新分配给正确的对象HW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19626990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com