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