Как найти каждое вхождение целевого значения в массиве и вернуть новый массив, содержащий индексы для этих значений?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как найти каждое вхождение целевого значения в массиве и вернуть новый массив, содержащий индексы для этих значений?

Сообщение Anonymous »

Я работаю над проблемой, и мне трудно заставить ее выводить правильную информацию.
Я пытаюсь найти каждое вхождение целевого значения и поместить его в новый массив и выведите индексы целевых значений. Если целевое значение не найдено, возвращается пустой массив. выводит {}
Сейчас я получаю сообщение об ошибке.
findAll():
[I@349b688e
[I@46ed5d9d
java.lang.ArrayIndexOutOfBoundsException

Выходные данные должны быть:
outputs {0, 5}
outputs {}
public class FindIndex(){
public FindIndex() {
int a[] = {7, 8, 9, 9, 8, 7};

System.out.println("findAll(): ");
System.out.println(findAll(a, 7));
System.out.print(findAll(a, 2));
}

public int[] findAll(int a[], int num) {

int indexNum = 0;
int arrSize = 0;

// find all occurrence of the target number
for(int i = 0; i < a.length; i++) {
if(a == num) {
arrSize++;
}
}

// create new array
int newArray[] = new int[arrSize];
for(int i = 0; i < a.length; i++) {
if(a == num) {
newArray[indexNum] = i;

}
}
return newArray;
}

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

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

if(a.length > 0) {
System.out.print(a);
}
System.out.print("}\n");

}
}


Подробнее здесь: https://stackoverflow.com/questions/153 ... ew-array-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»