2

TreeSet に関する Java ソースを読みましたが、 TreeSet に Iterator の実装が見つかりません。Iterator が TreeSet でどのように実装されているか、また TreeSet のソース コードはどこにあるか教えてもらえますか? ありがとう!

4

1 に答える 1

1

ソースコードを見ると、次のように表示されTreeSet<E>.iterator()ます。

public Iterator<E> iterator() {
    return m.navigableKeySet().iterator();
}

次に の定義を検索しますm

private transient NavigableMap<E,Object> m;

したがって、 's JavaDocが次のように述べているためTreeSetNavigableMapこれは本当に驚くべきことではないことを明らかに示しています。TreeSet

に基づくNavigableSet実装TreeMap

では、 のソース コードを確認してみましょうTreeMap。そこには、静的内部クラスであるというnavigableKeySet()名前のメンバーを指す、上記で参照されたメソッドがあります。次に、メソッドなどを見つけます。クラスにはかなり多くの内部クラスが含まれており、全体の構造はかなり複雑ですが、興味がある場合は自分で整理できます。良いスタートを切ったと思います。navigableKeySetTreeMap.KeySet<K>iterator()TreeMap;-)

于 2013-02-16T17:54:00.700 に答える