Проверить, содержит ли массив элемент в Java

Научитесь проверять, содержит ли массив элемент. Также научитесь находить индекс элемента в массиве.

1. Использование класса Arrays

Чтобы проверить, находится ли элемент в массиве, мы можем использовать класс Arrays для преобразования массива в ArrayList и использовать метод contains() для проверки наличия элемента. Мы можем использовать метод indexOf() для поиска индекса элемента в массиве.

В случае массива пользовательских объектов равенство объектов проверяется с помощью метода equals(), поэтому объект реализовал правильные и ожидаемые правила равенства в переопределенном методе equals().

Классыстрок и оберток уже переопределили метод equals(), поэтому они будут работать нормально.

 String[]fruits = new String[] { "банан", "гуава", "яблоко", "чику" };Arrays.asList(fruits).contains("apple"); // trueArrays.asList(фрукты).indexOf("яблоко"); // 2Arrays.asList(fruits).contains("лев"); // ложьArrays.asList(фрукты).indexOf("лев"); // -1

2. Использование потоков

Начиная с Java 8, мы можем создать поток элементов из массива и проверить, содержит ли поток заданный элемент или нет.

Мы можем использовать метод stream.anyMatch(), который возвращает, соответствует ли какой-либо элемент этого потока предоставленному Predicate. В предикате проверьте равенство текущему элементу в потоке и элементу аргумента, который необходимо найти.

Обратите внимание, что потоки также используют метод equals() для проверки равенства объектов.

 String[]fruits = new String[] { "банан", "гуава", "яблоко", "чику" };логический результат = Arrays.asList(фрукты).транслировать().anyMatch(x -> x.equalsIgnoreCase("apple")); //истиналогический результат = Arrays.asList(фрукты).транслировать().anyMatch(x -> x.equalsIgnoreCase("лев")); //ложь

3. Использование итерации

Наконец, мы всегда можем перебрать элементы массива с помощью цикла for-each и проверить, присутствует ли элемент в массиве.

int[] intArray = new int[]{1, 2, 3, 4, 5};boolean found = false;int searchedValue = 2;for(int x : intArray){if(x == searchedValue){found = true;break;}}System.out.println(found);

Обязательно измените условие if на проверку соответствия, если мы используем типы объектов.

String[] stringArray = new String[]{"A", "B", "C", "D", "E"};boolean found = false;String searchedValue = "B";for(String x : stringArray){if(x.equals(searchedValue)){found = true;break;}}
Прокрутить вверх