2013-02-01 69 views

回答

8

番石榴的Iterators.get(Iterator<T>, int)可以幫助

進展迭代器位置+ 1次,在positionth位置返回的元素。

+0

不錯,正是我在找的 –

+5

或者'Iterables.get(Iterable,int)'可以直接在'Collection'上使用。 –

0

編輯:忽略此,請閱讀部分問題。


你可以去像這樣:

for(int counter = 0; counter < max; counter++) 
    current = iterator.next(); 

之後,電流會通過迭代器產生的順序的最大個元素。

+0

請閱讀這個問題,並注意「我知道可以通過它的迭代器元素進行迭代計算」 –

+0

對不起,您必須仔細閱讀。假設集合不在有序的數據結構中(如avl或跳過列表),尋找第三方庫並不會真正幫助您,它始終是線性時間搜索。構建這樣的數據結構將需要超線性的時間,所以除非你打算多次線性化(意味着對第m個元素進行n次查找),否則這將比僅僅做這個微不足道的方法更昂貴。 –

+0

是的,當然是線性搜索。這有助於我沒有編寫新的代碼,並且可以依靠經過驗證的第三方庫。 –

0

使用Iterators.get(Iterator iterator, int position)得到在myCollection所述第三元件的一個例子:

com.google.common.collect.Iterators.get(myCollection.iterator(), 3); 

有情況下使用上述的全限定名它是需要的,例如在Eclipse的顯示視圖中。

相關問題