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;
}