Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MySQL
- 기록으로 실력을 쌓자
- Elasticsearch
- APM
- mysql 튜닝
- Pinpoint
- 정보처리기사 실기 기출문제
- AWS EKS
- Linux
- kotlin
- 오블완
- 정보처리기사실기 기출문제
- AI
- IntelliJ
- aws
- CloudWatch
- kotlin spring
- CKA 기출문제
- Spring
- minikube
- 정보처리기사 실기
- PETERICA
- CKA
- 코틀린 코루틴의 정석
- kotlin coroutine
- Kubernetes
- 티스토리챌린지
- kotlin querydsl
- Java
- 공부
Archives
- Today
- Total
피터의 개발이야기
[JAVA] Stream allMatch(), anyMatch(), noneMatch() 본문
반응형
Stream을 사용하면 늘 쓰는 것만 사용하게 된다.
나 같은 경우 filter를 주로 많이 사용하는데,
fiter는 중간처리자이다. 곧, Stream을 반환하기에 최종 처리 단계를 더 거쳐야 한다.
특히 단순히 list 중에 값이 있는지만 알기 위해 간단한 방법이 있다.
API는 최종 처리 단계 특정 조건을 만족하는 요소들을 얻을 수 있도록 세가지 매칭 메소드를 제공한다.
allMatch() 모든 요소들이 주어진 조건을 만족하는지 조사,
anyMatch() 모든 요소 중 한 개라도 조건에 만족하는지 조사,
noneMatch() 주어진 조건에 모든 요소들이 안 맞는지 조사,
allMatch() 사용 시 주의점이 있다.
리스트가 널일 경우 true를 반환한다.
자칫 버그처럼 보이지만
논리학에서 가정이 거짓이면 결과가 참이듯,
자바도 논리학에 따른 의도된 결과이다.
@Test
public void matchTest() {
int[] NOTIFY_TYPE_MINUTE = { 0, 1, 5, 10, 30, 60 };
boolean result = Arrays.stream(NOTIFY_TYPE_MINUTE)
.allMatch(a -> a%2 == 0);
System.out.println("2의 배수? " + result); // false
result = Arrays.stream(NOTIFY_TYPE_MINUTE)
.anyMatch(a -> a == 5);
System.out.println("5가 있니? " + result); // true
result = Arrays.stream(NOTIFY_TYPE_MINUTE)
.noneMatch(a -> a%7 == 0);
System.out.println("7의 배수가 없나? " + result); // false
// 만약 빈 리스트라면
result = Stream.<Integer>empty()
.allMatch(a -> a%2 == 0);
System.out.println("2의 배수? " + result); // ture
}
반응형
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 양방향 암호화기법 AES_ENCRYPT, AES_DECRPYT (0) | 2021.01.02 |
---|---|
[JAVA] JAVA 연습문제 풀어볼 수 있는 곳 (0) | 2020.12.19 |
[JAVA] Tomcat OutOfMemory시 톰캣 자동 재시작 (0) | 2020.12.17 |
[JAVA] HashMap, LinkedHashMap 차이점 및 사용법 (0) | 2020.12.05 |
[JAVA] 이전달 1일 전의 날짜인 경우 Exception 처리(Calendar) (0) | 2020.12.03 |
Comments