Iterator kann abgerufen werden In den meisten Fällen ist der Eigentümer Iterable, sodass es möglich ist, eine Schleife mit einer erweiterten for-Anweisung auszuführen, ohne Iterator zu verwenden (Code unten). Dieses Mal wage ich es, anstelle der erweiterten for-Anweisung Iterator zum Ausführen der Schleife zu verwenden. Vielen Dank für Ihre Zusammenarbeit.
Die Liste ist iterierbar, sodass Sie in die erweiterte for-Anweisung eintauchen können
//Listen Sie das Objekt auf, um die Elemente einzeln abzurufen
List<String> list = Arrays.asList("a", "i", "u", "e", "o");
//Es scheint, dass Sie die Schleife mit etwas namens Iterator drehen können, also nehmen Sie es heraus
Iterator<String> iterator = list.iterator();
//Davon abgesehen ist List Iterable, sodass Sie in eine erweiterte for-Anweisung eintauchen können.
for(String str : list){
System.out.println(str);
}
//Der Iterator wurde entlassen(Weinen)
iterator = null;
Iterator <T>
Methode | Funktion |
---|---|
T next() | Extrahieren Sie das nächste Element |
boolean hasNext() | Aus dem aktuellen Status wird true zurückgegeben, wenn das nächste Element abgerufen werden kann. |
Iterator ist eine Schnittstelle zum sequentiellen Verfolgen von Elementen.
Sie können das Element abrufen, indem Sie die Methode next ()
aufrufen.
Die allgemeine Verwendung besteht darin, "next () nur dann weiter aufzurufen, wenn hasNext ()" true zurückgibt ".
Iterator hat einen internen Status, und jedes Mal, wenn Sie ein Element mit next () abrufen, ändert sich der interne Status. (Schließlich gibt "hasNext ()" false zurück.) Es handelt sich um eine ** Einweg-Prämisse ** -Schnittstelle, da keine definierten Methoden zum Rückgängigmachen oder Zurückkehren in den Ausgangszustand vorhanden sind.
(Ich glaube nicht) Bitte seien Sie vorsichtig, wenn Sie Ihren eigenen Iterator herstellen.
Die Einführung ist lang geworden, aber es ist ein Code. Es gibt zwei Arten, while-Anweisung und for-Anweisung.
Iterator<String> itr = list.iterator();
while(itr.hasNext()){
String str = itr.next();
System.out.println(str);
}
for(Iterator<String> itr = list.iterator(); itr.hasNext();){
String str = itr.next();
System.out.println(str);
}
Persönlich bevorzuge ich die for-Anweisung, die den Umfang der Variablen einschränkt.
Recommended Posts