gpt4 book ai didi

java - 如何创建一个方法,接受一个数组并查找某个数字的所有出现,并返回该数字出现的所有索引的新数组

转载 作者:行者123 更新时间:2023-12-02 08:08:42 25 4
gpt4 key购买 nike

我一直在为我的 java 课做一些作业,我对最后一部分有点困惑。基本上,家庭作业是教如何传递数组,最后一部分是提供一个传递数组和要搜索的数字的方法。

这就是我需要做的确切措辞:

编写并测试 findAll() 方法,该方法创建并返回一个新数组,其中包含目标值每次出现的索引。返回长度为 0 的空数组如果目标值没有出现,则不包含任何内容。

到目前为止我的代码是:

public int[] findAll(int arr[], int num)
{
int indexNum = 0;
int arrSize = 1;
int newArr[] = new int[arrSize];

while (indexNum < arr.length)
{
if (arr[indexNum] == num)
{
indexNum += indexNum;


for (int i = 0; i < arrSize; ++i)
newArr[i] = indexNum;

arrSize++;
}

}
return newArr;

}

public void printArray(int arr[])
{
//use for each loop here to use each array element
for (int e : arr)
System.out.print(e + " ");
System.out.println();
}

这编译得很好,但由于某种原因我得到了越界异常。

感谢您的帮助!

最佳答案

您收到越界异常,因为 newArr 最多只能容纳一个值。您需要创建一个足够大的数组来包含需要返回的最大数量的索引。保留一个单独的 int 变量来表示您实际找到的数量。循环结束后,创建一个大小完全正确的新结果数组,并使用 System.arraycopy 将找到的索引复制到结果数组中并返回该数组。

关于java - 如何创建一个方法,接受一个数组并查找某个数字的所有出现,并返回该数字出现的所有索引的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781606/

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