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