Это самое простое и полное решение для вас, если вы хотите проверить, содержит ли ArrayList определенное значение, такое как String, Integer, Long или Double.
С комбинацией Java7 и Java8 - есть 4 различных способа проверки содержимого.
- 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