1
为什么Java的Iterator和ListIterator指向元素之间?
ListIterator的Javadoc说: 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; }