반응형

리스트간 비교 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

+ Recent posts