gpt4 book ai didi

java - 为什么这个方法只向新数组返回 0 值?

转载 作者:行者123 更新时间:2023-12-02 01:19:04 28 4
gpt4 key购买 nike

我应该编写一个简短的程序,它接受 10 个数字,将这些值存储在一个数组中,将其传递给一个方法 (eliminateDuplicates()),该方法创建一个仅包含唯一值的新数组从第一个数组开始。

但是,我在初始化 output 数组或使 eliminateDuplicates() 方法正确返回输出数组时遇到了麻烦。输出数组总是充满 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;```

最佳答案

您在 eliminateDuplicates 中有一个本地 outputNumbers,您返回。我假设您还有一个冗余的静态outputNumbers。方案一:消除局部变量,更改

int[] outputNumbers = new int [list.length];

outputNumbers = new int [list.length];

选项 2:在调用时设置 outputNumbers(这是我可能会做的,并消除 static 一个)...就像,

int[] outputNumbers = eliminateDuplicates(inputNumbers);

如果您使用选项 2,请不要忘记删除 static 选项。

关于java - 为什么这个方法只向新数组返回 0 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047558/

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