-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMatch.java
More file actions
42 lines (34 loc) · 1.93 KB
/
Copy pathMatch.java
File metadata and controls
42 lines (34 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Arrays;
import java.util.Collection;
public class Match {
// anyMatch - Возвращает true, если условие выполняется хотя бы для одного элемента
// noneMatch - Возвращает true, если условие не выполняется ни для одного элемента
// allMatch - Возвращает true, если условие выполняется для всех элементов
// anyMatch это short-circuiting методы, то есть обход стримов организуется таким образом
// чтобы найти подходящий элемент максимально быстро, а не обходить весь изначальный стрим.
private static void testMatch() {
Collection<String> collection = Arrays.asList("a1", "a2", "a3", "a1");
// найти существуют ли хоть одно совпадение с шаблоном в коллекции
boolean isAnyOneTrue = collection
.stream()
.anyMatch("a1"::equals);
System.out.println("anyOneTrue = " + isAnyOneTrue);
boolean isAnyOneFalse = collection
.stream()
.anyMatch("a13"::equals);
System.out.println("anyOneFalse = " + isAnyOneFalse);
// найти существуют ли все совпадения с шаблоном в коллекции
boolean isAll = collection
.stream()
.allMatch(s -> s.contains("1"));
System.out.println("isAll = " + isAll);
// сравнение на неравенство
boolean isNotEquals = collection
.stream()
.noneMatch("a7"::equals);
System.out.println("isNotEquals = " + isNotEquals);
}
public static void main(String[] args) {
testMatch();
}
}