Ich habe das folgende Problem in meinem Datenstrukturen und Problemlösung mit Java Buch:
Schreiben Sie eine Routine, die die Collections API verwendet, um die Elemente in einer Sammlung in umgekehrter Reihenfolge auszugeben. Verwenden Sie keinen ListIterator.
Ich lege es nicht hier auf, weil ich möchte, dass jemand meine Hausaufgaben macht, ich kann einfach nicht genau verstehen, was es für mich verlangt, zu programmieren!
Wenn es mich bittet, eine "Routine" zu schreiben, sucht es nach einer einzigen Methode? Ich verstehe nicht wirklich, wie ich eine einzige Methode für alle Arten von Sammlungen (verknüpfte Liste, Warteschlange, Stapel) funktionieren lassen kann.
Wenn jemand mich in die richtige Richtung führen könnte, würde ich es sehr schätzen.
Unabhängig von der Frage, die wenig Sinn macht, da die Hälfte der Sammlungen keine gstable-Reihenfolge von fixed-ordering hat (zB TreeSet oder PriorityQueue), können Sie die folgende Anweisung verwenden, um den Inhalt einer Collection in umgekehrter Reihenfolge zu drucken :
%Vor%I essence Sie erstellen eine Array-Liste, da Listen die einzige Struktur sind, die beliebig neu angeordnet werden kann. Sie übergeben die src Sammlung an den Konstruktor, der die Liste mit dem Inhalt der src in der natürlichen Reihenfolge der Sammlung initialisiert. Dann übergeben Sie die Liste an die Methode Collections.reverse () , die die Liste umkehrt und Sie schließlich ausdrucken.
Zunächst glaube ich, dass Sie gebeten werden, eine Methode zu schreiben. Wie:
%Vor%Dann gibt es viele Möglichkeiten, dies zu tun. Verwenden Sie beispielsweise nur die Collection-API, verwenden Sie die toArray-Methode und verwenden Sie eine for-Schleife, um alle Elemente vom Ende aus zu drucken. Sinn machen?
Wie für die verschiedenen Klassen, die die Collection-Schnittstelle verwenden, wird sie automatisch für alle diese Klassen funktionieren, da sie die Schnittstelle implementieren müssen (vorausgesetzt, sie implementieren sie auf vernünftige Weise;).
Nun, Sie könnten eine Routine haben, die basierend auf dem Eingabetyp an andere Routinen delegiert, aber ich bin mir nicht sicher, ob es einen generischen genug Sammlungs-Typ gibt, der in ein Argument eingeschlossen werden kann. Ich denke, Sie könnten einfach das Überladen von Methoden verwenden (mit mehreren Methoden mit demselben Namen, aber akzeptieren Sie verschiedene Argumente).
Das könnte technisch als eine Routine zählen (alle haben den gleichen Namen).
Gibt es keine Basis-Collection-Klasse?
Vielleicht lohnt sich hier der Blick als Ausgangspunkt ...
Ich kenne nicht viel Java, aber wenn ich mir die "Collections API" vorstelle, stelle ich mir vor, dass all diese Objekte eine Schnittstelle implementieren, die man auf irgendeine Weise durchlaufen könnte. ich nehme an, sie könnten alle einen itemAtIndex (int index) und length () oder eine ähnliche Methode verwenden.
Tags und Links java collections