1
ทำไม Iterator ของ Java และ ListIterator ชี้ไปที่องค์ประกอบต่าง ๆ
Javadoc สำหรับ ListIteratorพูดว่า: A ListIteratorไม่มีองค์ประกอบปัจจุบัน ตำแหน่งเคอร์เซอร์เสมออยู่ระหว่างองค์ประกอบที่จะถูกส่งกลับโดยเรียกร้องให้และองค์ประกอบที่จะถูกส่งกลับโดยเรียกร้องให้previous()next() เหตุใด Java จึงถูกListIteratorนำไปใช้เพื่อชี้ให้เห็นองค์ประกอบระหว่างองค์ประกอบแทนที่จะเป็นองค์ประกอบปัจจุบัน มันดูเหมือนว่านี้จะทำให้รหัสลูกค้าสามารถอ่านได้น้อยลงเมื่อจะมีการเรียกซ้ำ ๆgetNext(), getPrevious()ดังนั้นผมถือว่าต้องมีเหตุผลที่ดีสำหรับการเลือก ตามบันทึกข้างฉันเพียงแค่เขียนห้องสมุดเล็ก ๆ ที่เรียก peekable-arraylistที่ขยายArrayList, IteratorและListIteratorที่ให้peekAtNext()และpeekAtPrevious()วิธีการดำเนินการที่ชอบ: @Override public synchronized T peekAtNext() { T t = next(); previous(); return t; }