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

জাভা ৯-এ Stream API-তে iterate() মেথডের উন্নতি

জাভা ৮-এ Stream API-র iterate() মেথড seed এবং ইউনারি অপারেটর আর্গুমেন্ট হিসেবে নিত। যেহেতু স্ট্রিম অসীম হয়ে যায়, তাই ডেভেলপারকে এক্সপ্লিসিট টার্মিনেশন কন্ডিশন যোগ করতে হতো limit, findFirst, findAny ইত্যাদি ব্যবহার করে। জাভা ৯-এ iterate() মেথডে একটি নতুন আর্গুমেন্ট যোগ করা হয়েছে: একটি প্রেডিকেট (predicate) যা ফ্লো ব্রেক করার কন্ডিশন নেয়।

সিনট্যাক্স

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

উদাহরণ

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

public class StreamIterateMethodTest {
    public static void main(String args[]) {
        List<Integer> numbers1 = Stream.iterate(1, i -> i+1) // দুটি আর্গুমেন্ট
            .limit(10)
            .collect(Collectors.toList());
        System.out.println("In Java 8:" + numbers1);
        
        List<Integer> numbers2 = Stream.iterate(1, i -> i <= 10, i -> i+1) // তিনটি আর্গুমেন্ট
            .collect(Collectors.toList());
        System.out.println("In Java 9:" + numbers2);
    }
}

আউটপুট

In Java 8:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] In Java 9:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

জাভা ৯-এ iterate() মেথডে প্রেডিকেট যোগ হলে limit() কল করার প্রয়োজন নেই, কোড আরও ক্লিন হয়।

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

  2. জাভাতে isDaemon() মেথডের গুরুত্ব

  3. জাভাতে parseBoolean() মেথডের গুরুত্ব

  4. জাভাতে clone() মেথডের গুরুত্ব