কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Collectors.filtering() মেথডের গুরুত্ব কী?

Collectors ক্লাস Stream API-র একটি এসেনশিয়াল পার্ট। জাভা ৯-এ একটি নতুন মেথড: filtering() যোগ করা হয়েছে Collectors ক্লাসে। Collectors.filtering() মেথড স্ট্রিমে এলিমেন্ট ফিল্টার করতে ব্যবহৃত হয়। এটি স্ট্রিমের filter() মেথডের মতো। 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]}

দ্রষ্টব্য: "zz" ফিল্টার আউট হয়েছে কারণ এতে 'z' আছে, তাই লেনথ ২-র লিস্টে শুধু "yy" রয়েছে।

  1. জাভাস্ক্রিপ্টে _without() মেথডের গুরুত্ব

  2. জাভা ৯-এ destroyForcibly() মেথডের গুরুত্ব

  3. জাভাতে StringWriter ক্লাসের গুরুত্ব

  4. জাভাতে Boolean ক্লাসের গুরুত্ব