Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความสำคัญของเมธอด Collectors.filtering() ใน Java 9?


นักสะสม คลาสเป็นส่วนสำคัญของ สตรีม API . ใน Java 9 วิธีการใหม่:filtering() เพิ่มใน นักสะสม ระดับ. Collectors.filtering() สามารถใช้วิธีการกรององค์ประกอบในสตรีม คล้ายกับ filter() วิธีการในสตรีม ตัวกรอง() method ประมวลผลค่าก่อนที่จะจัดกลุ่มในขณะที่ 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]}