我讀了關於TreeSet的java源代碼,但是我在TreeSet中找不到Iterator的實現。任何人都可以告訴我Iterator如何在TreeSet中實現,並且TreeSet中的源代碼在哪裏?謝謝!Iterator如何在TreeSet中實現
0
A
回答
0
好吧,如果你看看TreeSet<E>.iterator()
的源代碼,您會看到:
public Iterator<E> iterator() {
return m.navigableKeySet().iterator();
}
爲m
定義下一個搜索:
private transient NavigableMap<E,Object> m;
所以很明顯TreeSet
指向NavigableMap
這是不真是一個驚喜,因爲TreeSet
's JavaDoc說:
A
NavigableSet
實施依據TreeMap
。
好的,讓我們檢查TreeMap
的源代碼。在那裏,您會找到上面引用的方法navigableKeySet()
,指向一個名爲navigableKeySet
的成員,該成員的類型爲TreeMap.KeySet<K>
,這是一個靜態內部類。反過來,你會發現一個iterator()
方法等等。 TreeMap
類包含相當多的內部類,整個結構非常複雜,但如果你感興趣,你可以自行整理。我想我給了你一個好頭。 ;-)
+0
感謝您的回答。 –
相關問題
- 1. 如何在Java中實現TreeSet?
- 2. 實現std :: iterator
- 3. iterator for doublylinkedlist,如何實現next(),remove()?
- 4. 如何實現列表<T> :: iterator?
- 5. 如何實現operator-> for iterator類型?
- 6. 在java中實現我自己的treeset
- 7. 在鏈表類中實現Iterator接口
- 8. 如何在java中的sinlgly linkedlist iterator中實現hasNext方法?
- 9. Iterable&Iterator實現問題(JAVA)
- 10. Java中的單鏈表實現Iterator
- 11. TreeSet內部使用TreeMap,所以需要在使用Treeset時實現Hashcode方法
- 12. AbstractCollection爲什麼不實現iterator()?
- 13. 如何模擬一個使用PHPUnit實現Iterator接口的類?
- 14. 在Java中實現我自己的樹Iterator
- 15. 在同一個類中實現Java Iterator和Iterable?
- 16. 如何用iterator
- 17. 如何在Delphi中實現XIRR實現?
- 18. 如果我們不知道Container類型元素的類型,如何實現Iterator?
- 19. 如何使用現有HashSet和其中的數據創建TreeSet?
- 20. 如何反轉TreeSet實例中數據的順序?
- 21. 爲什麼我們不實現Iterator的所有函數來實現迭代器?
- 22. 有沒有辦法在對象上foreach哪個類在PHP中實現Iterator?
- 23. 在JavaScript中如何實現?
- 24. 如何在Java中實現
- 25. 如何在PHP中實現
- 26. 如何在ASP.NET中實現
- 27. 如何在JNI中實現
- 28. 如何在OOP中實現?
- 29. 如何在Java中實現
- 30. 如何在JavaScript中實現?
我知道這個是舊的,但仍列爲未答覆。如果看起來合適,請您接受並提出我的答案嗎?謝謝。 – kriegaex