Streams মধ্যম

ইন্টারমিডিয়েট স্ট্রিম তৈরি না করেই প্রতি ইনপুটের জন্য শূন্য বা তার বেশি এলিমেন্ট নির্গত করুন।

✕ Java 8
stream.flatMap(order ->
    order.items().stream()
        .map(item -> new OrderItem(
            order.id(), item)
        )
);
✓ Java 16+
stream.<OrderItem>mapMulti(
    (order, downstream) -> {
        for (var item : order.items())
            downstream.accept(
                new OrderItem(order.id(), item));
    }
);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।

কম অ্যালোকেশন (Less Allocation)

প্রতি এলিমেন্টের জন্য কোনো ইন্টারমিডিয়েট স্ট্রিম তৈরি হয় না।

🎯

ইম্পারেটিভ স্টাইল (Imperative Style)

সরাসরি লুপ এবং কন্ডিশনাল ব্যবহার করুন।

📐

ফ্লেক্সিবল (Flexible)

সম্পূর্ণ কন্ট্রোল সহ শূন্য, এক, বা একাধিক এলিমেন্ট নির্গত করুন।

পুরনো পদ্ধতি
flatMap + List
আধুনিক পদ্ধতি
mapMulti()
JDK থেকে
16
কঠিনতা
মধ্যম
Stream.mapMulti()
উপলব্ধ

JDK 16 (মার্চ 2021) থেকে ব্যাপকভাবে উপলব্ধ

mapMulti() মেথডটি flatMap-এর একটি ইম্পারেটিভ বিকল্প, যা প্রতিটি এলিমেন্টের জন্য ইন্টারমিডিয়েট স্ট্রিম অবজেক্ট তৈরি করা এড়িয়ে যায়। ম্যাপিং যখন অল্প সংখ্যক এলিমেন্ট তৈরি করে, তখন এটি আরও ইফিশিয়েন্ট (efficient) হয়।