Есть ли у Java встроенная функция, позволяющая мне линейно искать элемент в массиве или мне нужно просто использовать цикл for?
Поиск элемента в массиве в Java
Ответ 1
Для списков существует метод contains, поэтому вы должны иметь возможность:
Arrays.asList(yourArray).contains(yourObject);
Предупреждение: это может не делать то, что вы (или я) ожидаем, см. комментарий Tom ниже.
Ответ 2
Возможно, вы захотите использовать реализацию Collection вместо плоского массива.
Интерфейс Collection определяет метод contains(Object o), который возвращает true/false.
 ArrayList реализация определяет indexOf(Object o), которая дает индекс, но этот метод не относится ко всем реализациям коллекции.
Оба этих метода требуют правильных реализаций метода equals(), и вам, вероятно, нужен правильно реализованный метод hashCode(), если вы используете хэш на основе Collection (например, HashSet).
Ответ 3
С помощью Java 8 вы можете сделать это:
int[] haystack = {1, 2, 3};
int needle = 3;
boolean found = Arrays.stream(haystack).anyMatch(x -> x == needle);
Вам нужно будет сделать
boolean found = Arrays.stream(haystack).anyMatch(x -> needle.equals(x));
если вы работаете с объектами.
Ответ 4
Используйте цикл for. Там ничего не встроено в массив. Или переключитесь на класс коллекции java.util Collection.
Ответ 5
Вы можете использовать один из методов Arrays.binarySearch(). Имейте в виду, что сначала необходимо отсортировать массив.