2011-12-10 28 views
-5

hasNext(),next()およびremove()のメソッドが定義されているところで、Javaクラスイテレータインターフェイスが実装されていることをインタビューで尋ねました。Javaクラスjava.util.Iteratorインターフェイスが実装されていますか?

お知らせください。これは非常に重要です。

+6

APIドキュメントをチェックしたことがありますか?指定されたインタフェースを実装するクラスをリストします。 –

答えて

0

java.util.AbstractList反復処理可能インタフェースの実装を提供する抽象クラスである(リストコレクションIfcをを拡張リストインタフェースを実装することで、コレクションは、反復処理可能Ifcをを拡張します)。

抽象リストには、を実装するIteratorインターフェイスが実装されています。ここではhasNext(), next()メソッドの実装を提供します。 iterator():: AbstractListメソッドは、そのコレクションをトラバースするためにnew Itr()オブジェクトを提供しています。

ArrayList、Vectorはすべてiterator():: AbstractList APIにアクセスして新しいIteratorオブジェクトを返すAbstractListのサブクラスです。

Simalarly for Set; AbstractCollectionはイテレータの実装の抽象クラスです。私たちは、に1つのより多くの内部クラスを持っています

java.util.AbstractList
すなわち class ListItr extends Itr implements ListIterator
は、これは、私たちは、両方の方向でコレクションを横断することができます。

2

イテレータインタフェースはjava.util.AbstractList、http://docs.oracle.com/javase/1.5.0/docs/api/java/util/AbstractList.htmlに実装されています。 "他の抽象コレクションの実装とは異なり、プログラマはイテレータ実装を提供する必要はなく、反復子とリスト反復子はこのクラスによって"ランダムアクセス "メソッドの上に実装されます:get( (int型のインデックス、オブジェクト要素)を設定(int型のインデックス、オブジェクト要素)を設定整数インデックス)、(int型のインデックス、オブジェクト要素)及び削除(INTインデックス)を加える。

方法イテレータ()リスト内の要素のイテレータを返します。 AbstractList:Vector、ArrayListを拡張したクラスでもこのメソッドが表示されます。

+1

これは、約1年前の@Kanagavelu Sugumarによって提供された他の回答と非常によく似ています。 – Krease

+0

AbstractListはIteratorインタフェースを実装していません。 Iterableインタフェースを実装しています。 iterator():: Iterable.javaの戻り値の型はIteratorのみです。 –

関連する問題