Как найти индекс элемента в массиве java
5 лет назад
Человек-Молекула
Ответы
Чтобы найти индекс элемента в массиве в Java, можно воспользоваться циклом for и проверять каждый элемент на равенство искомому. Как только элемент будет найден, можно вернуть его индекс. Если элемент не найден, можно вернуть -1 или выбросить исключение.
Вот пример кода:
4 года назад
Иван Полежаев
Для Ивана Полежаева: а что, у класса Arrays есть такой метод? где почитать? Здесь (https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html) что-то не нашла... у ArrayList вижу.
3 года назад
Юлия
Для того, чтобы найти индекс элемента в массиве в Java, можно использовать метод indexOf класса java.util.Arrays
Этот метод принимает на вход массив и искомый элемент, и возвращает индекс первого вхождения элемента в массиве. Если элемент не найден, метод возвращает -1.
Например, чтобы найти индекс числа 42 в массиве numbers, можно написать следующий код:
4 года назад
Иван Полежаев
Готового метода indexOf у массивов в Java нет. В классе java.util.Arrays его тоже нет — в комментарии к старому ответу это верно заметили. Индекс ищут циклом:
-1 — общепринятый ответ «элемента нет».
Массив строк и объектов
Объекты сравнивают через equals(). Оператор == проверяет, что это один и тот же объект в памяти:
Arrays.asList() превращает массив в список, и у списка уже есть indexOf(). С массивом примитивов int[] этот способ не сработает: Arrays.asList(numbers) вернёт список из одного элемента — самого массива.
Через Stream API
Отсортированный массив
Arrays.binarySearch() находит элемент за логарифмическое время:
На неотсортированном массиве результат непредсказуем. Если элемента нет, метод вернёт отрицательное число.
Библиотека Apache Commons Lang
Если библиотека уже подключена в проекте: ArrayUtils.indexOf(numbers, 15).
Последнее вхождение
Цикл с конца массива: for (int i = arr.length - 1; i >= 0; i--). У списка есть готовый lastIndexOf().
Массивы и циклы разбирают в бесплатном курсе «Основы Java».
3 дня назад
Никита Вихров






