Java 为什么此方法只向新数组返回0的值?
我应该编写一个简短的程序,它接受10个数字,将值存储在一个数组中,并将其传递给一个方法(Java 为什么此方法只向新数组返回0的值?,java,arrays,Java,Arrays,我应该编写一个简短的程序,它接受10个数字,将值存储在一个数组中,并将其传递给一个方法(EliminatedReplicates()),该方法只从第一个数组中创建一个新的数组 但是,我在初始化输出数组或使EliminatedReplicates()方法正确返回输出数组时遇到问题。输出数组总是充满了0,我不明白为什么会失败 java.util.Arrays.parallelSort(inputNumbers); //sorts the array in ascending orde
EliminatedReplicates()
),该方法只从第一个数组中创建一个新的数组
但是,我在初始化输出
数组或使EliminatedReplicates()
方法正确返回输出数组时遇到问题。输出数组总是充满了0,我不明白为什么会失败
java.util.Arrays.parallelSort(inputNumbers); //sorts the array in ascending order
eliminateDuplicates(inputNumbers); //passes array to eliminateDuplicates method
//display each unique value in output array
System.out.print("The distinct numbers are ");
for(int i = 0; i < outputNumbers.length; i++)
System.out.print(outputNumbers[i] + " ");
}
public static int [] eliminateDuplicates(int[] list) {
int[] outputNumbers = new int [list.length];
int k = 0;
for (int i = 0; i < list.length; i++)
if(i == 0) //compares each array value against preceding value
outputNumbers[i] = list[i]; //only copies unique values to output array
else
if(list[i] != list [i-1]) {
outputNumbers[k] = list[i];
k++;
}
return outputNumbers;```
java.util.Arrays.parallelSort(InputNumber)//按升序对数组排序
删除副本(输入编号)//将数组传递给EliminatedReplicates方法
//显示输出数组中的每个唯一值
系统输出打印(“不同的数字是”);
对于(int i=0;i
您正在忽略方法返回的数组
改变
eliminateDuplicates(inputNumbers);
到
另外,输出数组的长度与输入数组的长度相同。因此,由于要消除重复项,它的最后一个元素可能有一些0。如果这不是您想要的,您应该在找到输入数组中有多少唯一的数字后才创建输出数组。您在EliminatedReplicates
,您将返回它
。我假设您也有一个冗余的静态OutputNumber
。选项1:消除局部变量,更改
int[] outputNumbers = new int [list.length];
到
选项2:设置呼叫时的outputNumber
(这是我可能会做的,并消除static
one)
如果使用选项2,请不要忘记删除
静态
变量。您的问题中是否有忘记包含的静态outputNumbers
变量?
int[] outputNumbers = new int [list.length];
outputNumbers = new int [list.length];
int[] outputNumbers = eliminateDuplicates(inputNumbers);