Iterator บน ArrayList, คลาส HashMap คือตัวอย่างบางส่วนของ Iterator ที่ไม่เร็ว … นี่เป็นเพราะพวกเขาทำงานบนโคลนของคอลเล็กชัน ไม่ใช่ในคอลเล็กชันดั้งเดิม และนั่นเป็นสาเหตุที่เรียกพวกเขาว่าตัววนซ้ำแบบป้องกันความล้มเหลว Iterator บน CopyOnWriteArrayList, คลาส ConcurrentHashMap เป็นตัวอย่างของ Iterator ที่ไม่ปลอดภัย
ตัววนซ้ำล้มเหลวใน Java หรือไม่
ตัววนซ้ำใน Java ใช้เพื่อสำรวจวัตถุของคอลเลกชัน คอลเลกชันส่งคืนตัววนซ้ำสองประเภท ได้แก่ มันจะล้มเหลวเร็วหรือล้มเหลวปลอดภัย ตัววนซ้ำ Fail Fast จะโยน ConcurrentModificationException ทันที ในกรณีที่มีการปรับเปลี่ยนโครงสร้างของคอลเล็กชัน
Fail-safe และ Fail-fast ใน Java คืออะไร
ไม่ปลอดภัย 1. ข้อยกเว้น การเปลี่ยนแปลงใดๆ ในคอลเล็กชัน เช่น การเพิ่ม การลบ และการอัปเดตคอลเล็กชันระหว่างเธรดกำลังทำซ้ำคอลเล็กชัน จากนั้น Fail fast throw ข้อยกเว้นการแก้ไขพร้อมกัน คอลเล็กชันที่ไม่ปลอดภัยไม่มีข้อยกเว้น
ตัววนซ้ำรายการล้มเหลวเร็วหรือไม่
การวนซ้ำ การวนซ้ำ โดยวิธีการวนซ้ำของ ArrayList และเมธอด listIterator ล้มเหลวอย่างรวดเร็ว: หากรายการมีการแก้ไขโครงสร้างเมื่อใดก็ได้หลังจากสร้างตัววนซ้ำแล้ว ในทางใดๆ ยกเว้นผ่านทาง วิธีการลบหรือเพิ่มของ iterator ตัววนซ้ำจะส่ง ConcurrentModificationException.
ArrayList ล้มเหลวเร็วหรือไม่
Iterator of ArrayList ล้มเหลวอย่างรวดเร็ว ดังนั้นในขณะที่คุณอยู่การวนซ้ำบน ArrayList โดยใช้ Iterator หาก ArrayList พื้นฐานถูกแก้ไขโดยวิธีอื่นนอกเหนือจากการเพิ่มและลบที่ Iterator จัดเตรียมไว้ให้ มันจะโยน ConcurrentModificationException และประกันตัว