상세 컨텐츠

본문 제목

[모던 자바 인 액션] 스트림 distinct(), filter() 사용법

Java/Modern Java in Action

by 개발하는 정복자 2022. 6. 30. 16:13

본문

 

모던 자바 인 액션 - YES24

자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴

www.yes24.com


필터링 🔄

 스트림 요소를 프레디케이트나 고유 요소만 선택하는 방법을 알아보자!

 

1.  프레디케이트로 필터링하기

 

filter 메서드는 프레디케이트를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다.

 

 

👉🏾 프레디케이트란?

파라미터로 값을 받아 true나 false를 반환하는 함수

 

💻 채식 요리만 필터링하기 👇🏾

List<Dish> menu = Dish.getDishes();
        
List<Dish> vegetarianMenu = menu.stream()
	.filter(Dish::isVegetarian) // 채식 요리인지 확인하는 메서드 참조
	.collect(Collectors.toList());

 

 

      출처: Modern Java in Action

 

3. 고유 요소 필터링하기

distint 메서드 고유 요소로 이루어진 스트림을 반환한다.

 

 

💻 짝수를 선택하고 중복 필터링하기 👇🏾

List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);

numbers.stream()
	.filter(i -> i % 2 == 0)
	.distinct()	    // 중복 요소를 제거한다.
	.forEach(System.out::println);​

 

 

관련글 더보기

댓글 영역