Tag: collectors

7 รายการ

Blog

นากมิ้นต์ต้นฉบับรวบรวมชิ้นงานลงตะกร้าแล้วกดฝาสีอำพันให้ล็อกหลังเก็บครบ
javastreamscollectors

Java collectingAndThen: เก็บข้อมูลก่อน แล้วล็อกผลลัพธ์ตอนจบ

ใช้ Collectors.collectingAndThen เพิ่ม finishing step เช่น unmodifiable list โดยไม่กระจาย post-processing นอก stream

พี่โชว์
กองการ์ดสีแยกกลุ่มบนโต๊ะมิ้นต์มีตัวนับสีอำพันบนแต่ละกอง
javastreamcollectors

Java Collectors.groupingBy + counting: นับรายการตามกลุ่มในพาสเดียว

ใช้ groupingBy คู่ counting นับความถี่ตามคีย์ พร้อมตัวอย่างรันจริง

น้องกาย
นากกายต้นฉบับเปิดกล่องย่อยจากแต่ละโครงการแล้วเทลูกแก้วลงถาดรวมตามทีมโดยไม่เหลือกล่องซ้อน
javastreamscollectors

Java Collectors.flatMapping: รวมสมาชิกย่อยต่อกลุ่มโดยไม่เก็บ List ซ้อน

ใช้ flatMapping downstream ของ groupingBy เพื่อรวม tag ต่อทีม พร้อมจัดการ stream ย่อยและค่า null ให้ชัด

พี่โชว์
นากกายต้นฉบับคัดลูกบอลในถาดแยกตามทีม โดยยังวางถาดว่างไว้ให้ทีมที่ไม่มีลูกบอลผ่านเงื่อนไข
javastreamscollectors

Java Collectors.filtering: กรองสมาชิกแต่ยังเก็บกลุ่มที่ผลลัพธ์เป็นศูนย์

วาง filtering ไว้ downstream ของ groupingBy เพื่อรักษา key ของกลุ่ม พร้อมเทียบกับการ filter stream ก่อนจัดกลุ่ม

พี่โชว์
นากกายต้นฉบับรวมถั่วจากบัตร key ซ้ำสองใบลงในช่องเดียวบนกระดานมิ้นต์
javastreamscollectors

Java Collectors.toMap: กำหนดชะตา key ซ้ำก่อน pipeline พังกลางทาง

ใช้ merge function ของ Collectors.toMap รวมข้อมูล key ซ้ำอย่างตั้งใจ พร้อมแยกกรณี sum, keep-first และข้อมูลผิด schema

พี่โชว์
นากกายต้นฉบับคัดลูกบอลจากสายพานเดียวลงตะกร้าสองฝั่งบนโต๊ะสว่าง
javastreamscollectors

Java Collectors.partitioningBy: แบ่ง Stream เป็นสองฝั่งด้วย predicate เดียว

ใช้ partitioningBy เมื่อต้องการทั้งกลุ่ม true และ false พร้อมเทียบกับ filter สองรอบ

พี่โชว์
นากสีมิ้นต์ต้นฉบับกำลังแยกเมล็ดจากรางเดียวเข้าสองตะกร้าแล้วรวมผลบนโต๊ะสว่าง
javastreamscollectors

Java Collectors.teeing: สรุปสองค่าใน stream pass เดียว

ใช้ teeing จับคู่ collector สองตัวโดยไม่ traverse stream ซ้ำ พร้อม trade-off ด้าน readability และ parallel reduction

พี่โชว์