Java 基于变量将对象数组排序到另一个数组中
我为学校作业写的程序有问题。 本质上,在编写这段代码之前,我已经接收并处理了一组存储到对象数组中的信息。现在我必须对这个数组进行排序(排序后,我必须按照优先级变量的顺序计算一些内容) 假设我已经有一个名为input的MyClass[]数组,它存储了有限数量的MyClass对象Java 基于变量将对象数组排序到另一个数组中,java,arrays,object,Java,Arrays,Object,我为学校作业写的程序有问题。 本质上,在编写这段代码之前,我已经接收并处理了一组存储到对象数组中的信息。现在我必须对这个数组进行排序(排序后,我必须按照优先级变量的顺序计算一些内容) 假设我已经有一个名为input的MyClass[]数组,它存储了有限数量的MyClass对象 MyClass[] priorityArray = new MyClass[input.length]; for (int i=0; i<priorityArray.length; i++) { int maxI
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[]priorityArray=newmyclass[input.length];
对于(int i=0;i我将完全重写我的答案
在这一行
priorityArray[i] = input[maxIndex];
您正在通过引用将对象从一个数组分配到另一个数组。这意味着只有一个对象,您在下一行将值设置为-9000000。当然,priorityArray中的元素将有相同的更改。要修复它,您需要在此处克隆对象。我不确定是否理解-我想要“j”for循环每次都要遍历整个“input”数组。因此for循环必须从0开始(我从1开始,因为我在声明maxPrivilege变量时将输入[0]的值赋给它。此外,“使用调试器”是什么意思?谢谢你解决了我的问题。不幸的是,我还没有100%完成这个项目,但现在优先级显示正确。谢谢!