К основному контенту

4 способа проверить, содержит ли массив определенное значение в Java8? Учебное пособие по IntStream и Arrays.asList





Это самое простое и полное решение для вас, если вы хотите проверить, содержит ли ArrayList определенное значение, такое как String, Integer, Long или Double.

С комбинацией Java7 и Java8 - есть 4 различных способа проверки содержимого.

  • Устаревший метод String.contains()
  • Java8 IntStream -> anyMatch() метод
  • Java8’s LongStream -> anyMatch() метод
  • Arrays.asList() метод
Мы собираемся обсудить и проверить все вышеперечисленные 4 метода в этой Java-программе. Этот учебник Java будет работать, если у вас есть следующие вопросы:
 Как я могу проверить, содержит ли массив определенное значение?
·         проверить, содержит ли массив значение в Java
·         массив Java содержит int
·         проверить, содержит ли массив строку javascript
Если вам интересно, есть ли способ переопределить метод contains () в Java?  Что ж, тогда следуйте подробному руководству о том, как переопределить метод contains () / findMe () самостоятельно.

Давайте начнем реализацию программы всеми четырьмя способами:

Шаг 1

Давайте сначала разберемся в нашей логике и о том, что мы собираемся делать в этом руководстве по Java.

·         Создадим Java-класс CrunchifyCheckIfContains.java
·         Создадим массив int [] crunchifyIntArray с 15 элементами в нем
·         Распечатаем  (system.out.println) все 15 элементов
·         Затем Test-1: получить случайные 5 значений и проверить
o    если значение содержит, мы будем печатать Matched
o    если значение не совпадает, выведите No Match
·         Тест-2: Выполните ту же проверку с помощью утилиты Java8, используя IntStream -> anyMatch ()
·         Тест-3: Создать crunchifyLongArray с 15 элементами и выполнить проверку с помощью утилиты Java8, используя LongStream -> anyMatch ()
·         Тест-4: Выполнить ту же проверку содержимого, используя метод Arrays.asList ()

Шаг 2

Скопируйте полную программу ниже в Eclipse IDE.

package crunchify.com.tutorials;

import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.LongStream;



public class CrunchifyCheckIfContains {
        public static void main(String[] args) {

               int crunchifyRandomNo;

               // Let's create integer array with 15 values in it
               int[] crunchifyIntArray = new int[15];
               for (int i = 1; i <= 14; i++) {
                       crunchifyRandomNo = (7 + (int) (Math.random() * ((95 - 7))));
                       crunchifyIntArray[i] = crunchifyRandomNo;
               }

               log("Here is an array crunchifyIntArray[i] ==> " + Arrays.toString(crunchifyIntArray));
               log("\n");

               // Now let's run loop for 10 times to see if my random value is part of int[] crunchifyIntArray
               log("============= Test1: Legacy Java7 Way =============");
               for (int j = 1; j <= 5; j++) {
                       crunchifyRandomNo = (7 + (int) (Math.random() * ((95 - 7))));

                       if (crunchifyContainsMethod(crunchifyIntArray, crunchifyRandomNo)) {
                               log("Matched: " + crunchifyRandomNo + " in array crunchifyIntArray[i]");
                       } else {
                               log("No Match for: " + crunchifyRandomNo);
                       }
               }
               log("\n");

               // this is java8 way to find if Array contains specified value.
               java8IntStreamLongStreamExample(crunchifyIntArray);
               java8ArraysAsListExample(crunchifyIntArray);

        }

        // Java7: Simple Legacy way to check if specified value is there in Array :)
        public static boolean crunchifyContainsMethod(int[] crunchifyIntArray, int matchedValue) {

               for (int isMatched : crunchifyIntArray) {
                       if (isMatched == matchedValue) {
                               return true;
                       }
               }
               return false;
        }

        // Java8: IntStream -> anyMatch() and LongStream.anyMatch() Example
        public static void java8IntStreamLongStreamExample(int[] crunchifyIntArray) {

               // Intstream: A sequence of primitive int-valued elements supporting sequential and parallel aggregate operations.
               // anyMatch() returns whether any elements of this stream match the provided predicate.

                // Now let's run loop for 10 times to see if my random value is part of int[] crunchifyIntArray

               log("============= Test2: Java8 IntStream->anyMatch() Way =============");
               for (int j = 1; j <= 5; j++) {
                       int crunchifyRandomNo = (7 + (int) (Math.random() * ((95 - 7))));
                       if (IntStream.of(crunchifyIntArray).anyMatch(myValue -> myValue == crunchifyRandomNo)) {
                               log("Matched " + crunchifyRandomNo + " in array crunchifyIntArray[i]");
                       } else {
                               log("No Match for: " + crunchifyRandomNo);
                       }
               }
               log("\n");

               long[] crunchifyLongArray = new long[15];
               for (int i = 1; i <= 14; i++) {
                       long crunchifyRandomLongNo = (7 + (long) (Math.random() * ((95 - 7))));
                       crunchifyLongArray[i] = crunchifyRandomLongNo;
               }
               log("Here is an array crunchifyLongArray[i] ==> " + Arrays.toString(crunchifyLongArray));

               log("\n============= Test3: Java8 LongStream->anyMatch() Way =============");
               for (int j = 1; j <= 5; j++) {
                       long crunchifyRandomNo = (7 + (long) (Math.random() * ((95 - 7))));
                       if (LongStream.of(crunchifyLongArray).anyMatch(myValue -> myValue == crunchifyRandomNo)) {
                               log("Matched " + crunchifyRandomNo + " in array crunchifyLongArray[i]");
                       } else {
                               log("No Match for: " + crunchifyRandomNo);
                       }
               }
               log("\n");

        }

        // Java8: Arrays.asList() contains() and containsAll() Example
        private static void java8ArraysAsListExample(int[] crunchifyIntArray) {
               String[] crunchifyCompany = new String[] { "Facebook", "Twitter", "Google" };

               // Convert String Array to List
               List<String> crunchifyList = Arrays.asList(crunchifyCompany);

               log("============= Test4: Arrays.asList() contains() and containsAll() Example =============");
               if (crunchifyList.contains("Twitter")) {
                       log("Matched Found for Twitter");
               }

               if (crunchifyList.contains("Twitter") || crunchifyList.contains("Facebook")) {
                       log("Matched Found for Twitter and Facebook");
               }

               // A and B
               if (crunchifyList.containsAll(Arrays.asList("Google", "Facebook"))) {
                       log("Matched Found for Google and Facebook");
               }

        }

        // Simple log utility
        private static void log(String string) {
               System.out.println(string);

        }

}


Шаг 3

Запустите программу в Eclipse, щелкнув правой кнопкой мыши программу и выбрав «Запуск от имени приложения Java». Вы должны увидеть консольный результат, похожий на этот:



Here is an array crunchifyIntArray[i] ==> [0, 72, 26, 87, 12, 45, 27, 34, 12, 89, 9, 65, 79, 15, 16]


============= Test1: Legacy Java7 Way =============
No Match for: 32
No Match for: 33
Matched 79 in array crunchifyIntArray[i]
No Match for: 40
Matched 12 in array crunchifyIntArray[i]


============= Test2: Java8 IntStream->anyMatch() Way =============
Matched 34 in array crunchifyIntArray[i]
No Match for: 58
No Match for: 62
Matched 27 in array crunchifyIntArray[i]
No Match for: 17


Here is an array crunchifyLongArray[i] ==> [0, 74, 93, 61, 78, 42, 74, 52, 59, 88, 61, 34, 27, 59, 84]

============= Test3: Java8 LongStream->anyMatch() Way =============
No Match for: 15
Matched 84 in array crunchifyLongArray[i]
No Match for: 23
No Match for: 39
No Match for: 69


============= Test4: Arrays.asList() contains() and containsAll() Example =============
Matched Found for Twitter
Matched Found for Twitter and Facebook
Matched Found for Google and Facebook




Комментарии

Популярные сообщения из этого блога

Команды Yum (Oracle linux,Cent os, RHEL)

Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен. отображение команд и опций #yum help список названий пакетов из репозиторий #yum list список всех доступных пакетов #yum list available список всех установленных пакетов #yum list installed установлен ли указанный пакет #yum list installed httpd список установленных и доступных пакетов #yum list all список пакетов, относящихся к ядру #yum list kernel отображение информации о пакете #yum info httpd список зависимостей и необходимых пакетов #yum deplist httpd найти пакет, который содержит файл #yum provides "*bin/top" поиск пакета по имени и описанию #yum search httpd #yum search yum получить информацию о доступных обновлениях безопасности #yum updateinfo list security вывести список групп #yum gr

Установка и конфигурирование Oracle Enterprise Manager 13c.

Этот пост поможет правильно установить и сконфигурировать Oracle Enterprise Manager 13c. Oracle Enterprise Manager - Это централизованный центр управления и мониторинга для всех продуктов Oracle. OEM способен управлять и мониторить и сторонние приложения и сообщать о всех критических проблемах основанные на установленных правилах установленные администратором. Первоначальные настройки системы Oracle Linux 6.7 64 Bit Virtual Machine VirtualBox 5.1.6 for Windows hosts Oracle Database 12.1.0.2 Oracle Enterprise Manager 13c Выделена оперативной памяти 12 Гб . На операционной системе Oracle Linux 6.7 64 Bit предустановлена база данных Oracle Database 12c установка которой тут не рассматривается. Предустановленные пакеты для корректной установки и настройки Oracle Management Service (OMS) make-3.81 binutils-2.20 gcc-4.4.4 libaio-0.3.107 glibc-common-2.12-1 libstdc++-4.4.4 libXtst-1.0.99 (x86_64) sysstat-9.0.4 glibc-2.12 glibc-devel-2.1

Запуск Spring Boot App из командной строки

Я расскажу вам, как запустить приложение Spring Boot из командной строки в окне терминала. Есть несколько способов, и оба предполагают, что вы уже создали приложение Spring Boot. Добавить плагин Maven в POM . XML Чтобы мы могли запускать приложение Spring Boot в виде единого исполняемого файла JAR Java , нам сначала нужно обновить файл pom . xml нашего проекта и добавить к нему подключаемый модуль maven . Откройте файл pom . xml и добавьте следующий фрагмент XML ниже списка зависимостей проекта. <build> <plugins> <plugin> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-maven-plugin </artifactId> </plugin> </plugins> </build> Сборка Spring Boot проекта с Maven Чтобы иметь возможность запускать приложение Spring Boot , вам необходимо сначала его собрать. Чтобы собрать и упаковать приложение Spring Boot в один исполняемый файл Jar с