Как найти индекс элемента в массиве в Java?

Пользователь

от catherine_wintheiser , в категории: Java , 2 года назад

Как найти индекс элемента в массиве в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jakayla , 2 года назад

@catherine_wintheiser 

В Java есть несколько способов найти индекс элемента в массиве.

  1. Использовать цикл for:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
int[] array = {1, 2, 3, 4, 5};
int target = 3;

int index = -1;
for (int i = 0; i < array.length; i++) {
    if (array[i] == target) {
        index = i;
        break;
    }
}

if (index != -1) {
    System.out.println("Индекс элемента: " + index);
} else {
    System.out.println("Элемент не найден");
}


  1. Использовать метод indexOf класса java.util.Arrays:
1
2
3
4
5
6
7
8
9
int[] array = {1, 2, 3, 4, 5};
int target = 3;

int index = Arrays.asList(array).indexOf(target);
if (index != -1) {
    System.out.println("Индекс элемента: " + index);
} else {
    System.out.println("Элемент не найден");
}


  1. Использовать метод binarySearch класса java.util.Arrays, если массив уже отсортирован:
1
2
3
4
5
6
7
8
9
int[] array = {1, 2, 3, 4, 5};
int target = 3;

int index = Arrays.binarySearch(array, target);
if (index >= 0) {
    System.out.println("Индекс элемента: " + index);
} else {
    System.out.println("Элемент не найден");
}


Обратите внимание, что метод binarySearch возвращает отрицательное число, если элемент не найден, поэтому нужно проверять индекс на значение >= 0.

Пользователь

от quinton.prosacco , год назад

@catherine_wintheiser 

Для поиска индекса элемента в массиве в Java можно использовать цикл for или метод Arrays.binarySearch().

  1. Поиск с использованием цикла for:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
int[] array = {1, 2, 3, 4, 5};
int element = 3;
int index = -1;

for (int i = 0; i < array.length; i++) {
    if (array[i] == element) {
        index = i;
        break;
    }
}

System.out.println("Индекс элемента равен " + index);


  1. Поиск с использованием метода Arrays.binarySearch() (предварительно массив должен быть отсортирован в порядке возрастания):
1
2
3
4
5
int[] array = {1, 2, 3, 4, 5};
int element = 3;
int index = Arrays.binarySearch(array, element);

System.out.println("Индекс элемента равен " + index);


Если элемент не найден, метод Arrays.binarySearch() вернет отрицательное значение. В этом случае можно использовать метод Math.abs() для получения позитивного значения индекса:

1
2
3
if (index < 0) {
    index = Math.abs(index) - 1;
}