Ich frage mich, wie man den Iterator in einer Stack-Klasse verwendet. Wie erstelle ich eine Iterator-Klasse dafür?Wie würde ich einen Stapel in Java iterieren
Antwort
Nehmen Sie einfach die Iterator
über iterator()
:
Stack<YourObject> stack = ...
Iterator<YourObject> iter = stack.iterator();
while (iter.hasNext()){
System.out.println(iter.next());
}
Oder alternativ, wenn man ihnen nur alle die enhanced-for loop verwenden möchten, drucken:
for(YourObject obj : stack)
{
System.out.println(obj);
}
Ohne Iterator - während {... currentSymbol = stack.pop(); ...} –
@HiteshSahu Nach dem Ausführen (stack.isEmpty()!) Ihr Code, der 'Stack' ist leer, während' pop() 'den oberen Teil des Stacks entfernt. – Baz
Zustimmen. Ich baute einen Compiler und ich benutzte diese Variante für syntex Parsing. –
Stack<Object> myStack; // obtain your Stack object
Iterator iterator = myStack.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
}
Bitte schreiben Sie auch eine Erklärung, was macht dieser Code. – Lucifer
Sie könnten tun:
for (Iterator<MyObject> iterator = stack.iterator(); iterator.hasNext();) {
MyObject myObject = iterator.next();
myObject.doStuff();
}
Klingt so, als hätten Sie eine benutzerdefinierte Stack-Klasse implementiert. Ihr "Etwas" sollte die Iterable
Schnittstelle implementieren und eine Implementierung von Iterator
bereitstellen.
public class MySomethingThatIsAStack<T> implements Iterable<T> {
@Override
public Iterator<T> iterator() {
return new Iterator<T>() {
// your implementation of the iterator, namely the
// methods hasNext, next and remove
}
}
}
I am working on something that is implementing a stack using queues
Heißt das, Sie bedeuten nicht die Java Stack
Implementierung mit? http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html Es basiert auf Vektor nicht Warteschlangen. Wenn Sie die Java-Implementierung Stack
verwenden, können Sie den Iterator wie andere Antworten verwenden. Andernfalls, wenn das eine benutzerdefinierte Stack
ist, müssen Sie die Iterable
Schnittstelle implementieren. Und dann kannst du so etwas wie andere Antworten tun.
- 1. Wie würde ich einen JavaScript-Browser in einen JFrame integrieren?
- 2. Java: Wie würde ich einen Versuch-Catch-Repeat-Block schreiben?
- 3. Wie bekomme ich einen Stapel für Ausnahme
- 4. Wie würde man über eingebettete Dokumente in Meteor iterieren?
- 5. Schnellste Möglichkeit, über einen Stapel in C#
- 6. Wie würde ich einen ListView-Eintrag erhöhen?
- 7. UINavigationController: Wie lösche ich einen Blick auf einen Stapel
- 8. Wie Karte mit Schnurrbart in Java iterieren
- 9. Wie würde ich ein reaktionsfähiges Layout in Java Swing erstellen
- 10. Einen Stapel teilen (Python)
- 11. Wie würde ich diese Methode in Java schreiben?
- 12. Wie würde ich dieses Layout in Java Swing machen?
- 13. Wie würde ich einen Datagrid-Detailbereich durch einen Klick erweitern?
- 14. Wie würde ich diesen Code ändern, damit ich ihn durch eine Fehlerliste iterieren und testen kann?
- 15. wie würde ich einen ‚Affen geflickt‘ Prototyp in Typoskript erkläre
- 16. Wie würde ich einen Vektor in J2ME/BlackBerry tief kopieren?
- 17. Wie würde ich einen Handle Manager in Rust erstellen?
- 18. Wie würde ich einen Alarmton in Python spielen?
- 19. Wie würde ich einen Vor-Merge-Hook in Git schreiben?
- 20. In Scala, wie würde ich einem Singleton einen Konstruktor geben?
- 21. Wie über einen Spaltenvektor in Matlab iterieren?
- 22. Wie würde ich
- 23. Wie kann ich einen Befehl über Stapel von Dateien ausführen?
- 24. Wie würde ich einen benutzerdefinierten NFC-Reader-Writer programmieren/erstellen?
- 25. einen Konstruktor Verwenden Sie einen Stapel
- 26. Wie erstelle ich einen int Zeiger auf dem Stapel?
- 27. Iterieren über einen String
- 28. Iterieren über Java-Sammlungen in Scala
- 29. Wie würde ich in Erinnerung schreiben?
- 30. Wie würde ich diese eingegebene Zeichenfolge teilen? (Java)
public Iterator iterator() { \t \t \t} –