Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 Collectors.filtering() 메서드의 중요성?


수집가 클래스는 스트림 의 필수적인 부분입니다. API . Java 9에서 새로운 메소드:filtering() 수집가 에 추가됨 수업. Collectors.filtering() 메서드는 스트림의 요소를 필터링하는 데 사용할 수 있습니다. filter()와 유사합니다. 스트림에 대한 메소드. 필터() 메소드는 그룹화되기 전에 값을 처리하는 반면 filtering() 메소드는 Collectors.groupingBy() 와 함께 잘 사용할 수 있습니다. 필터링 단계가 수행되기 전에 값을 그룹화하는 방법입니다.

구문

public static <T, A, R> Collector<T, ?, R> filtering(Predicate<? super T> predicate, Collector<? super T, A, R> downstream)

예시

import java.util.stream.*;
import java.util.*;

public class FilteringMethodTest {
   public static void main(String args[]) {
      List<String> list = List.of("x", "yy", "zz", "www");

      Map<Integer, List<String>> result = list.stream()
                           .collect(Collectors.groupingBy(String::length,
                            Collectors.filtering(s -> !s.contains("z"),
                            Collectors.toList())));

      System.out.println(result);
   }
}

출력

{1=[x], 2=[yy], 3=[www]}