Computer >> Máy Tính >  >> Lập trình >> Java

Tầm quan trọng của phương thức Collectors.filtering () trong Java 9?


Người sưu tập lớp học là một phần thiết yếu của Luồng API . Trong Java 9, một phương thức mới: filter () được thêm vào Bộ sưu tập lớp. Collectors.filtering () có thể được sử dụng để lọc các phần tử trong một luồng. Nó tương tự như filter () phương thức trên các luồng. Bộ lọc () phương thức xử lý các giá trị trước khi chúng được nhóm trong khi lọc () phương pháp có thể được sử dụng độc đáo với Collectors.groupingBy () để nhóm các giá trị trước khi bước lọc diễn ra.

Cú pháp

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

Ví dụ

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);
   }
}

Đầu ra

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