Collectors.flatMapping()
একটি গ্রুপিং কালেক্টরের (grouping collector) ভিতরে ফ্ল্যাটেন (flatten) করতে flatMapping() ব্যবহার করুন।
কোড তুলনা
✕ Java 8
// Flatten within a grouping collector
// Required complex custom collector
Map<String, Set<String>> tagsByDept =
// no clean way in Java 8
✓ Java 9+
var tagsByDept = employees.stream()
.collect(groupingBy(
Emp::dept,
flatMapping(
e -> e.tags().stream(),
toSet()
)
));
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
কম্পোজেবল (Composable)
groupingBy এর ভিতরে একটি ডাউনস্ট্রিম কালেক্টর হিসাবে কাজ করে।
সিঙ্গেল পাস (One Pass)
একটি সিঙ্গেল স্ট্রিম ট্র্যাভার্সালে ফ্ল্যাটেন এবং গ্রুপ করুন।
নেস্টেবল (Nestable)
অন্যান্য ডাউনস্ট্রিম কালেক্টরগুলোর সাথে একত্রিত করুন।
পুরনো পদ্ধতি
নেস্টেড flatMap
আধুনিক পদ্ধতি
flatMapping()
JDK থেকে
9
কঠিনতা
মধ্যম
JDK সমর্থন
Collectors.flatMapping()
উপলব্ধ
JDK 9 (সেপ্টেম্বর 2017) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
Collectors.flatMapping() একটি ওয়ান-টু-মেনি (one-to-many) ম্যাপিংকে ডাউনস্ট্রিম কালেক্টর হিসাবে প্রয়োগ করে। এটি Stream.flatMap()-এর কালেক্টর ইকুইভ্যালেন্ট (equivalent) — groupingBy বা partitioningBy-এর ভিতরে ব্যবহার করার জন্য উপযোগী।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ