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

জাভা ৯-এ Stream API মেথড ইমপ্লিমেন্ট করার পদ্ধতি

Stream API কলেকশনে স্ট্রিম পাইপলাইন ব্যবহার করে অপারেশন পারফর্ম করতে সাহায্য করার জন্য বেশ কিছু বিল্ট-ইন ফাংশনালিটি প্রদান করে। API হলো ডিক্লেয়েটিভ প্রোগ্রামিং যা কোডকে প্রিসাইজ এবং কম এরর-প্রোন করে। জাভা ৯-এ, কিছু ইউজফুল মেথড Stream API-এ যোগ করা হয়েছে।

  • Stream.iterate(): এই মেথড ট্র্যাডিশনাল for-লুপ-এর স্ট্রিম ভার্সন রিপ্লেসমেন্ট হিসেবে ব্যবহার করা যায়।
  • Stream.takeWhile(): এই মেথড একটি হواয়াল লুপে ব্যবহার করা যায় যা কন্ডিশন মিট হলে ভ্যালু নেয়।
  • Stream.dropWhile(): এই মেথড একটি হোয়াইল লুপে ব্যবহার করা যায় যা কন্ডিশন মিট হলে ভ্যালু ড্রপ করে।

নিচের উদাহরণে, আমরা স্ট্যাটিক মেথড: iterate(), takeWhile(), এবং dropWhile() মেথড Stream API-এর ইমপ্লিমেন্ট করতে পারি।

উদাহরণ

import java.util.Arrays;
import java.util.Iterator;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamAPITest {
    public static void main(String args[]) {
        String[] sortedNames = {"Adithya", "Bharath", "Charan", "Dinesh", "Raja", "Ravi", "Zaheer"};
        System.out.println("[Traditional for loop] Indexes of names starting with R = ");
        for(int i = 0; i < sortedNames.length; i++) {
            if(sortedNames[i].startsWith("R")) {
                System.out.println(i);
            }
        }
        System.out.println("[Stream.iterate] Indexes of names starting with R = ");
        Stream.iterate(0, i -> i < sortedNames.length, i -> ++i).filter(i -> sortedNames[i].startsWith("R")).forEach(System.out::println);
        String namesAtoC = Arrays.stream(sortedNames).takeWhile(n -> n.charAt(0) <= 'C').collect(Collectors.joining(","));
        String namesDtoZ = Arrays.stream(sortedNames).dropWhile(n -> n.charAt(0) <= 'C').collect(Collectors.joining(","));
        System.out.println("Names A to C = " + namesAtoC);
        System.out.println("Names D to Z = " + namesDtoZ);
    }
}

আউটপুট

[Traditional for loop] Indexes of names starting with R = 4 5
[Stream.iterate] Indexes of names starting with R = 4 5
Names A to C = Adithya,Bharath,Charan
Names D to Z = Dinesh,Raja,Ravi,Zaheer
  1. জাভাতে স্ক্রোলযোগ্য JPanel কীভাবে বাস্তবায়ন করবেন?

  2. জাভাতে JPanel-এর paintComponent() মেথড কীভাবে বাস্তবায়ন করবেন?

  3. জাভাতে JToggleButton কীভাবে বাস্তবায়ন করবেন?

  4. জাভাতে JWindow ব্যবহার করে স্প্ল্যাশ স্ক্রিন কীভাবে বাস্তবায়ন করবেন?