Wenn Sie Map / List in Java berühren,
Ich denke, es gibt einige solche Momente. Dieser ** Iterator ** ist in einem solchen Fall praktisch.
Bitte beziehen Sie sich darauf, da es mit dem tatsächlichen Code zusammengefasst ist.
Iterator (Englisch: Iterator) ist eine Abstraktion der iterativen Verarbeitung für jedes Element eines Arrays oder einer ähnlichen kollektiven Datenstruktur (Sammlung oder Container) in einer Programmiersprache. In der eigentlichen Programmiersprache erscheint es als Objekt oder Grammatik. In JIS wird es als Repeater (Hanpukushi) übersetzt. wikipedia
Wie oben erwähnt, wird die ** Schnittstelle ** zum Durchführen einer ** iterativen Verarbeitung ** für ** Arrays und ähnliche Daten ** als Iterator bezeichnet.
Die folgenden zwei Methoden werden in der Iterator-Klasse deklariert.
Die beiden oben genannten sind wichtig, und next () und hasNext () werden hauptsächlich für die iterative Verarbeitung verwendet. Wenn Sie Iterator in einer anderen Klasse verwenden, überschreiben Sie die Methode. "Beliebige Operation" von remove () bedeutet "einige Objekte namens Iterator unterstützen nicht".
Bei Verwendung mit `Iterator <Referenzobjekttyp> Objektname
`` instanziieren
Überprüfen Sie die tatsächliche Verwendung in jeder Klasse unten.
Da die List-Klasse die ** Iteratable-Schnittstelle ** implementiert, können Sie ein Objekt vom Typ Iterator abrufen, indem Sie einfach eine Methode aufrufen. Klassendetails auflisten (Oracle HP)
IteratorDemo.java
public void IteratorDemo(){
//Listenerstellung
List<String> list = new ArrayList<String>();
list.add("Hund");
list.add("Affe");
list.add("Fasan");
//Holen Sie sich Iterator, Methode aufrufen
Iterator<String> itList = list.iterator();
//Anzeige
while (itList.hasNext()){
String s = itList.next();
System.out.println(s);
}
}
Ausführungsergebnis:
Hund
Affe
Fasan
Da ** Iterator-Schnittstelle nicht in der Map-Klasse ** implementiert ist, rufen Sie Iterator ab, nachdem Sie es zu einem Klassentypobjekt gemacht haben, das die Iterator-Schnittstelle einmal implementiert.
IteratorDemo.java
//Kartenerstellung//
Map<Character, String> map = new HashMap<Character, String>();
map.put('A', "Arufa");
map.put('B', "Bravo");
map.put('C', "Charlie");
//Holen Sie sich Iterator, Methode aufrufen//
// keySet()Holen Sie sich die Schlüsselliste als Set-Typ-Objekt mit
Iterator<Character> itMapKey = map.keySet().iterator();
// values()Ruft eine Liste von Werten als Objekt vom Typ Sammlung mit ab
Iterator<String> itMapValue = map.values().iterator();
// entrySet()Mit Set<Map.Entry<K, V>Schlüssel / Wert-Kombination als Typobjekt abrufen
Iterator<Map.Entry<Character, String>> itEntry = map.entrySet().iterator();
//Anzeige//
while (itMapKey.hasNext()){
char key = itMapKey.next();
System.out.println(key);
}
while (itMapValue.hasNext()){
String value = itMapValue.next();
System.out.println(value);
}
while(itEntry.hasNext()){
Map.Entry<Character, String> entry = itEntry.next();
System.out.println(entry);
}
Ausführungsergebnis:
A
B
C
Arufa
Bravo
Charlie
A=Arufa
B=Bravo
C=Charlie
Im obigen Codebeispiel wurde die Ausgabe mit den Generika ** "<>" ** ausgeführt, aber die erweiterte for-Anweisung kann auch verwendet werden. Die Ausgabemethode für jede List / Map for-Anweisung lautet wie folgt.
//Das Anzeigeergebnis entspricht dem Code im Abschnitt "Kartenbasierter Iterator".
//Alle Inhalte der Liste anzeigen
for (String value : list){
System.out.println(value);
}
//Alle Map-Schlüssel anzeigen
for (char key : map.keySet()){
System.out.println(key);
}
//Alle Kartenwerte anzeigen
for (String value : map.values()){
System.out.println(value);
}
//Zuordnung von Kartenschlüssel und Wert(Eintrag)Zeige alles
for (Map.Entry<Character, String> entry : map.entrySet()){
System.out.println(entry);
}
--List Klasse kann Iterator so wie es ist verwenden
Elemente, die Sie wollen | Methodenname | Rückgabewert |
---|---|---|
Liste der Schlüssel | map.keySet() | Typ einstellen |
Liste von Werten | map.values() | Sammlungsart |
Liste der Schlüssel / Wert-Kombinationen | map.entrySet() | Collection<Entry<K, V>>Schimmel |
Vielen Dank, dass Sie so weit gelesen haben.
Es gibt einige Teile, die noch nicht angesprochen wurden, daher möchte ich sie eines Tages zusammenfassen.
Ich habe einige Artikel wie "Implementiere Iterator in meiner eigenen Klasse" gesehen, deshalb möchte ich sie eines Tages zusammenfassen.
Dann.
Recommended Posts