我阅读了有关 TreeSet 的 java 源代码,但在 TreeSet 中找不到 Iterator 的实现。谁能告诉我Iterator在TreeSet中是如何实现的,TreeSet中的源代码在哪里?谢谢!
问问题
627 次
1 回答
1
好吧,如果您查看源代码,TreeSet<E>.iterator()
您会看到:
public Iterator<E> iterator() {
return m.navigableKeySet().iterator();
}
接下来搜索 的定义m
:
private transient NavigableMap<E,Object> m;
很明显TreeSet
,NavigableMap
这并不令人惊讶,因为TreeSet
's JavaDoc说:
NavigableSet
基于TreeMap
. _
好的,让我们检查TreeMap
. 在那里你会发现navigableKeySet()
上面引用的方法,指向一个名为navigableKeySet
type的成员TreeMap.KeySet<K>
,一个静态内部类。反过来你会找到一种iterator()
方法等等。该类TreeMap
包含相当多的内部类,整个结构相当复杂,但如果您有兴趣可以自行整理。我想我给了你一个很好的开端。;-)
于 2013-02-16T17:54:00.700 回答