필터링

: 중간 처리 기능을 요소를 걸러내는 역할

: distinct() 와 filter() 메소드 - 모든 스트림이 가지고 있는 공통 메소드

1. distinct() 

: 중복을 제거

: Stream의 경우 Object.equals(Object)가 true이면 동일한 객체로 판단하고 중복을 제거

: IntStream, LongStream, DoubleStream은 동일값일 경우 중복을 제거

 

2. filter()

: 매개값으로 주어진 Predicate가 true를 리턴하는 요소만 필터링

 

필터링

package sec04.stream_filtering_YJ;

import java.util.Arrays;
import java.util.List;

public class FilteringExample {
	public static void main(String[] args) {
		List<String> names = Arrays.asList("홍길동", "신용권", "감자바", "신용권", "신민철");
		
		names.stream()
			.distinct() //중복 제거
			.forEach( n -> System.out.println(n));
		System.out.println();
		
		names.stream()
			.filter( n -> n.startsWith("신")) //필터링
			.forEach( n -> System.out.println(n));
		System.out.println();
		
		names.stream()
			.distinct() //중복 제거 후
			.filter( n -> n.startsWith("신")) //필터링
			.forEach( n-> System.out.println(n));
	}
}
홍길동
신용권
감자바
신민철

신용권
신용권
신민철

신용권
신민철

+ Recent posts