Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 基于变量将对象数组排序到另一个数组中_Java_Arrays_Object - Fatal编程技术网

Java 基于变量将对象数组排序到另一个数组中

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

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

假设我已经有一个名为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[]priorityArray=newmyclass[input.length];

对于(int i=0;i我将完全重写我的答案

在这一行

priorityArray[i] = input[maxIndex];

您正在通过引用将对象从一个数组分配到另一个数组。这意味着只有一个对象,您在下一行将值设置为-9000000。当然,priorityArray中的元素将有相同的更改。要修复它,您需要在此处克隆对象。

我不确定是否理解-我想要“j”for循环每次都要遍历整个“input”数组。因此for循环必须从0开始(我从1开始,因为我在声明maxPrivilege变量时将输入[0]的值赋给它。此外,“使用调试器”是什么意思?谢谢你解决了我的问题。不幸的是,我还没有100%完成这个项目,但现在优先级显示正确。谢谢!