hasNext()
,next()
およびremove()
のメソッドが定義されているところで、Javaクラスイテレータインターフェイスが実装されていることをインタビューで尋ねました。Javaクラスjava.util.Iteratorインターフェイスが実装されていますか?
お知らせください。これは非常に重要です。
hasNext()
,next()
およびremove()
のメソッドが定義されているところで、Javaクラスイテレータインターフェイスが実装されていることをインタビューで尋ねました。Javaクラスjava.util.Iteratorインターフェイスが実装されていますか?
お知らせください。これは非常に重要です。
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
は、これは、私たちは、両方の方向でコレクションを横断することができます。
イテレータインタフェースは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年前の@Kanagavelu Sugumarによって提供された他の回答と非常によく似ています。 – Krease
AbstractListはIteratorインタフェースを実装していません。 Iterableインタフェースを実装しています。 iterator():: Iterable.javaの戻り値の型はIteratorのみです。 –
APIドキュメントをチェックしたことがありますか?指定されたインタフェースを実装するクラスをリストします。 –