4
我想用番石榴實施「peekable」 ListIterator
,讓我在前面和後面的列表元素偷看不移動光標。這類似於番石榴的PeekingIterator
,只有雙向的,因爲番石榴的PeekingIterator
只有一個next()
方法,而不是一個previous()
。是否可以將Guava的ForwardingListIterator與PeekingIterator結合使用?
這是否需要通過寫一個新PeekingListIterator
類實現或者是有兩個概念結合了番石榴,意呢?
所以你是說,這個問題的答案是,有沒有辦法將兩者結合起來沒有我自己的滾動' PeekingListIterator'?你可以很容易地問同樣的「有什麼價值」問題有關'PeekingIterator',但顯然有人在看到它的價值,但由於某種原因省略'PeekingListIterator'。 – 2012-03-04 18:26:09
不能向後移動一個'Iterator',但你可以向後移動一個'ListIterator'。因此'PeekingIterator'提供了不能用普通的'Iterator'複製的功能,但是每個'ListIterator'都可以用來獲得'PeekingListIterator'的相同功能。 – 2012-03-04 18:58:35
@LouisWasserman這是一個非常好的點+1。所以直接回答Kevin的問題,在這種情況下,價值在於客戶代碼的可理解性。從客戶的角度來看,'next = iterator.peekAtNext()'比'next = iterator.next()更容易理解。 iterator.previous();'。 – 2012-03-05 15:01:56