Gibt es in Java einen Unterschied zwischen Iterator und Iterable?


Antwort 1:

Die Namen der Schnittstellen passen perfekt zusammen, sie sollten Ihnen einen Hinweis geben, wenn nicht die direkte Antwort bereits. Eine Klasse, die die Iterable-Schnittstelle implementiert, ist - ITERABLE.

Es kann also in dieser Klasse wiederholt werden.

Dies wird zum Beispiel von der für jede Schleife verwendet:

für (Artikel Artikel: Artikel) {System.out.println (Artikel); }}

Dieser Code funktioniert NUR unter der Bedingung, dass "items" eine Klasse ist, die die Iterable-Schnittstelle implementiert.

Die Iterable-Schnittstelle hat nur eine Methode:

Iterator iterator ();

Es wird ein Iterator zurückgegeben, und der Iterator wird von der JVM intern verwendet, um über Ihr Objekt zu iterieren.

Ein Iterator ist ein Objekt, mit dem über ein anderes Objekt iteriert wird. Wie ein Smart-Pointer-Objekt, das den Status speichert (current, last, next, hasNext…).

Man könnte also sagen - Iterable ist ein Birnenbaum. Iterator ist eine Birne. Ein Birnenbaum „gibt Birnen zurück“. Ein Birnenbaum ist keine Birne.

(keine perfekte Illustration muss ich zugeben, aber gut, ich hoffe du kommst auf die Idee ;-)

Online Iterable Quellcode (OpenJdk):

Iterable - java.lang.Iterable (.java) - GrepCode-Schnittstellenquelle

Online Iterator Quellcode (OpenJdk):

Iterator - java.util.Iterator (.java) - GrepCode-Schnittstellenquelle


Antwort 2:

Danke für die A2A

Wenn etwas "Iterable" implementiert, können Sie die .iterator () -Methode aufrufen und ein Iterator-Objekt angegeben haben. Dies geschieht "unter der Decke" in einer for-Schleife.

Ein Iterator ist eine Objektinstanz, die sich daran erinnert, wo es in einer Sammlung von Dingen vor sich geht. Jedes Mal, wenn Sie danach fragen, erhalten Sie die nächste Folge. Es wird Ihnen auch sagen, wenn die Dinge ausgegangen sind.

Hoffentlich gibt Ihnen ein iterierbares Objekt jedes Mal einen neuen, frischen Iterator zurück. Dann können Sie mehrere Teile des Client-Codes haben, die alle mit ihrer eigenen Geschwindigkeit durchlaufen.


Antwort 3:

Ein Iterator ist eine einfache Methode, mit der einige Benutzer eine Sammlung von Daten ohne Zuweisungsberechtigungen durchlaufen können (obwohl sie entfernt werden können). Es verfolgt das aktuelle Element und auch, wohin es als nächstes gehen wird.

Ein Iterable ist eine einfache Darstellung einer Reihe von Elementen, die wiederholt werden können. Es gibt uns nur eine Vorstellung davon, dass eine bestimmte Sammlung wiederholt werden kann, zum Beispiel können wir vom ersten Element ausgehen und das nächste Element erhalten, dann das nächste und so weiter.


Antwort 4:

Ein Iterator ist eine einfache Methode, mit der einige Benutzer eine Sammlung von Daten ohne Zuweisungsberechtigungen durchlaufen können (obwohl sie entfernt werden können). Es verfolgt das aktuelle Element und auch, wohin es als nächstes gehen wird.

Ein Iterable ist eine einfache Darstellung einer Reihe von Elementen, die wiederholt werden können. Es gibt uns nur eine Vorstellung davon, dass eine bestimmte Sammlung wiederholt werden kann, zum Beispiel können wir vom ersten Element ausgehen und das nächste Element erhalten, dann das nächste und so weiter.