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

জাভা ৯-এ Optional.stream() মেথডের ব্যবহার

জাভা ৯-এ Optional ক্লাসে stream() মেথড যোগ করা হয়েছে কার্যকারিতা বাড়ানোর জন্য। stream() মেথড ব্যবহার করে অপশনাল এলিমেন্টের একটি স্ট্রিমকে প্রেজেন্ট ভ্যালু এলিমেন্টের স্ট্রিমে রূপান্তর করা যায়। যদি Optional মান ধারণ করে, তবে সেটি মান ধারণকারী একটি স্ট্রিম রিটার্ন করে। অন্যথায়, এটি একটি খালি স্ট্রিম রিটার্ন করে।

সিনট্যাক্স

public Stream<T> stream()

উদাহরণ

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamMethodTest {
    public static void main(String[] args) {
        List<Optional<String>> list = Arrays.asList(
            Optional.empty(),
            Optional.of("TutorialsPoint"),
            Optional.empty(),
            Optional.of("Tutorix"));
        
        // জাভা ৮ পদ্ধতি: flatMap দিয়ে ফিল্টারিং
        List<String> filteredListJava8 = list.stream()
            .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
            .collect(Collectors.toList());
        
        // জাভা ৯ পদ্ধতি: Optional::stream মেথড ব্যবহার
        List<String> filteredListJava9 = list.stream()
            .flatMap(Optional::stream)
            .collect(Collectors.toList());
        
        System.out.println(filteredListJava8);
        System.out.println(filteredListJava9);
    }
}

আউটপুট

[TutorialsPoint, Tutorix] [TutorialsPoint, Tutorix]

উভয় পদ্ধতিতে একই ফলাফল পাওয়া যায়, কিন্তু জাভা ৯-এ Optional::stream ব্যবহার করে কোড আরও সংক্ষিপ্ত ও পঠনযোগ্য হয়েছে।

  1. জাভাতে String intern() মেথডের ভূমিকা

  2. জাভাতে pack() মেথড কখন ব্যবহার করবেন

  3. জাভাতে StrictMath ক্লাসের ব্যবহার

  4. জাভাতে setBounds() মেথডের ব্যবহার কী?