gpt4 book ai didi

java - 创建一个新数组,其中包含目标值每次出现的索引

转载 作者:行者123 更新时间:2023-12-01 12:24:17 24 4
gpt4 key购买 nike

我正在尝试创建一个方法来创建一个新数组,其中包含目标值每次出现的索引。我必须为此使用 2 个循环。第一个计算目标出现的次数。然后创建新数组来保存这么多索引。然后第二个循环将索引放入新数组中。

我编写了下面的代码,但它抛出 java lang Array Out Of Bound Exception:5 ,上线result [ i ] = f [ i ] ;

public class FindAll {

public FindAll() {
int a[] = {7, 8, 9, 9, 8, 7};
print(findAll(a, 7));
print(findAll(a, 2));
}

public void print(int p[]) {
System.out.print("{");
int i;

for (i = 0; i < p.length - 1; ++i) {
System.out.print(p[i] + ", ");
}

System.out.print(p[i]);
System.out.print("}");
}

public int[] findAll(int f[], int target) {
int count = 0;
for (int i = 0; i < f.length; ++i) {
if (f[i] == target) {
count++;
}
}
int result[] = new int[count];
for (int i = 0; i < f.length; ++i) {
if (f[i] == target) {
result[i] = f[i];
}
}
return result;
}
}

最佳答案

试试这个

int result[] = new int[count];
int index = 0;
for (int i = 0; i < f.length; i++)
{
if (f[i] == target){
result[index] = f[i];
index++;
}
}

关于java - 创建一个新数组,其中包含目标值每次出现的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26471588/

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