gpt4 book ai didi

java - 根据变量将一个对象数组排序到另一个数组中

转载 作者:行者123 更新时间:2023-11-30 06:56:43 25 4
gpt4 key购买 nike

我为学校作业编写的程序有问题。本质上,在这段代码之前,我已经接收并使用了存储在对象数组中的一堆信息。现在我必须对这个数组进行排序(排序后,我将必须按照 PRIORITY 变量的顺序计算一些内容)。

假设我已经有一个名为 input 的 MyClass[] 数组,它存储有限数量的 MyClass 对象。

MyClass[] priorityArray = new MyClass[input.length];
for (int i=0; i<priorityArray.length; i++) {
int maxIndex = 0;
int maxPrivilege = input[i].returnPrivilege();
for (int j=1; j<input.legnth; j++) {
int currentPrivilege = input[j].returnPrivilege();
if (currentPrivilege > maxPrivilege) {
maxPrivilege = currentPrivilege;
maxIndex = j;
}
}
priorityArray[i] = input[maxIndex];
input[maxIndex].setPrivilege(-900000000);


}

MyClass 类如果没有什么奇特的,但当然包含一个适当的构造函数、getter 和 setter 方法以及一个整数变量“特权”。

我在程序的最终测试中遇到错误,并且看到程序返回的权限为“-900000000”,它必须与这部分代码有关。它甚至没有将输入数组中的某些 MyClass 实例写入priorityArray 数组。

我该如何解决这个问题?帮助。

最佳答案

我会完全重写我的答案。

在这一行

priorityArray[i] = input[maxIndex];

您正在通过引用将一个数组中的对象分配给另一个数组。这意味着只有一个对象,并且您在下一行中将值设置为 -9000000。当然priorityArray中的元素也会有同样的变化。要修复它,您需要在此处克隆您的对象。

关于java - 根据变量将一个对象数组排序到另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653652/

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