반응형
리스트간 비교 anyMatch, noneMatch
문자열 비교에 따른 true, false 리턴
@Test
public void 리스트비교(){
List<String> allList = new ArrayList<>();
allList.add("1");
allList.add("2");
allList.add("3");
List<String> comparisonList = new ArrayList<>();
comparisonList.add("2");
List<String> anyMatchList = allList.stream()
.filter(target -> comparisonList.stream().anyMatch(Predicate.isEqual(target)))
.collect(Collectors.toList());
List<String> noneMatchList = allList.stream()
.filter(target -> comparisonList.stream().noneMatch(Predicate.isEqual(target)))
.collect(Collectors.toList());
System.out.println(anyMatchList); // 2
System.out.println(noneMatchList); // 1, 3
//리스트에 값이 있는지 체크
//1. for문으로 하였을 경우
boolean isResult = false;
for(String comparison : comparisonList){
if(comparison.equals("2")){
isResult = true;
break;
}
}
//2. stream 사용
if (comparisonList.stream().anyMatch(w -> w.equals("2"))) {
System.out.println("해당값이 있습니다.");
}
}
'JAVA' 카테고리의 다른 글
JAVA CS핵심 내용 (0) | 2021.03.10 |
---|---|
restful API 규칙 (0) | 2021.03.03 |
Kafka (0) | 2021.02.24 |
RestTemplate VS WebClient (0) | 2021.02.24 |
비동기, 동기, 블로킹, 논블로킹 (0) | 2021.02.19 |