1. ホーム
  2. java

[解決済み] なぜJavaのIteratorはIterableではないのですか?

2022-04-16 01:07:51

質問

なぜ Iterator インタフェースは Iterable ?

があります。 iterator() メソッドは、単に this .

意図的なのか、それともJavaの設計者の見落としなのか?

このようにイテレータでfor-eachループが使えると便利なんですけどね。

for(Object o : someContainer.listSomeObjects()) {
    ....
}

ここで listSomeObjects() はイテレータを返します。

どのように解決するのですか?

イテレータは一般的にコレクション内の1つのインスタンスを指すからです。Iterableは、オブジェクトからイテレータを取得してその要素をたどることができることを意味し、イテレータが表すような単一のインスタンスをたどる必要はありません。