我阅读了有关 TreeSet 的 java 源代码,但在 TreeSet 中找不到 Iterator 的实现。谁能告诉我Iterator在TreeSet中是如何实现的,TreeSet中的源代码在哪里?谢谢!
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()上面引用的方法,指向一个名为navigableKeySettype的成员TreeMap.KeySet<K>,一个静态内部类。反过来你会找到一种iterator()方法等等。该类TreeMap包含相当多的内部类,整个结构相当复杂,但如果您有兴趣可以自行整理。我想我给了你一个很好的开端。;-)
于 2013-02-16T17:54:00.700 回答