คำถามติดแท็ก spliterator

4
ทำความเข้าใจกับ Spliterator, Collector และ Stream ใน Java 8
ฉันมีปัญหาในการเข้าใจStreamอินเตอร์เฟสใน Java 8 โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับSpliteratorและCollectorอินเตอร์เฟส ปัญหาของฉันคือฉันไม่เข้าใจSpliteratorและCollectorอินเทอร์เฟซเลยและด้วยเหตุนี้Streamอินเทอร์เฟซยังค่อนข้างคลุมเครือสำหรับฉัน อะไรคือ a Spliteratorและ a Collectorและฉันจะใช้ได้อย่างไร หากฉันยินดีที่จะเขียนของตัวเองSpliteratorหรือCollector(และอาจเป็นของฉันเองStreamในกระบวนการนั้น) ฉันควรทำอย่างไรและไม่ควรทำอย่างไร ฉันอ่านตัวอย่างกระจัดกระจายไปทั่วเว็บ แต่เนื่องจากทุกอย่างที่นี่ยังใหม่และอาจมีการเปลี่ยนแปลงตัวอย่างและแบบฝึกหัดก็ยังกระจัดกระจายมาก

2
คุณสามารถปรับสมดุล Spliterator ที่ไม่ทราบขนาดได้หรือไม่?
ฉันต้องการใช้การStreamประมวลผลแบบขนานของชุดไฟล์ JSON ที่จัดเก็บจากระยะไกลซึ่งเป็นหมายเลขที่ไม่รู้จัก (จำนวนไฟล์ไม่ทราบล่วงหน้า) ไฟล์สามารถมีขนาดแตกต่างกันอย่างมากตั้งแต่ 1 ระเบียน JSON ต่อไฟล์สูงสุด 100,000 ระเบียนในไฟล์อื่น ๆ บันทึก JSONในกรณีนี้หมายถึงการที่ตนเองมีวัตถุ JSON แสดงเป็นหนึ่งบรรทัดในไฟล์ ฉันต้องการใช้ Streams สำหรับสิ่งนี้และดังนั้นฉันจึงใช้สิ่งนี้Spliterator: public abstract class JsonStreamSpliterator<METADATA, RECORD> extends AbstractSpliterator<RECORD> { abstract protected JsonStreamSupport<METADATA> openInputStream(String path); abstract protected RECORD parse(METADATA metadata, Map<String, Object> json); private static final int ADDITIONAL_CHARACTERISTICS = Spliterator.IMMUTABLE | Spliterator.DISTINCT | …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.