Ich habe ein Problem mit der Codierung:
Schreiben Sie eine statische Methode mit dem Namen removeDuplicates
, die als Eingabe ein Array von ganzen Zahlen verwendet und als Ergebnis ein neues Array von ganzen Zahlen zurückgibt, wobei alle Duplikate entfernt wurden.
Zum Beispiel, wenn das Eingabe-Array die Elemente {4, 3, 3, 4, 5, 2, 4} das resultierende Array hat
sollte {4, 3, 5, 2}
Folgendes habe ich bisher gemacht
%Vor%Vielleicht können Sie lambdaj ( hier herunterladen , website ), diese Bibliothek ist sehr leistungsfähig für das Verwalten von Sammlungen (..list, arrays), der folgende Code ist sehr einfach und funktioniert perfekt:
%Vor%Dieser Code zeigt:
%Vor%In einer Zeile können Sie eine eindeutige Liste erhalten, dies ist ein einfaches Beispiel, aber mit dieser Bibliothek können Sie mehr auflösen.
%Vor%Sie müssen lambdaj-2.4.jar zu Ihrem Projekt hinzufügen. Ich hoffe, das wird nützlich sein.
Hinweis: Dies wird Ihnen helfen anzunehmen, dass Sie Alternativen zu Ihrem Code haben können.
Zunächst sollten Sie die Länge ohne Duplikate kennen: Anfangslänge minus Anzahl der Duplikate. Erstellen Sie dann ein neues Array mit der richtigen Länge. Dann überprüfe jedes Element der Liste [] auf Duplikate, wenn dupl deued - überprüfe das nächste Element, falls dup nicht gefunden wurde - kopiere das Element in ein neues Array.
%Vor%Was Sie tun müssen, ist, dass Sie für jedes Element im zweiten Array prüfen müssen, ob das vorherige Element bereits vorhanden ist oder nicht.
Sie können einen besseren Ansatz verwenden Verwenden Sie HashSet und return set.
%Vor%Wenn Sie int Array brauchen, dann werfen Sie einen Blick darauf Link zu java-hashsettinteger-to-int-array .
Versuchen Sie es
%Vor%Bearbeiten: Aktualisiert mit Apache Lang , um in Grundelemente zu konvertieren.
Sie können auch die Guava-Bibliothek von Google verwenden und ImmutableSet
Sie können die Array-Elemente auch in ein Set
setzen, für das die Semantik genau so ist, dass sie keine doppelten Elemente enthält.
Sie können jedoch naiv tun. Zuerst müssen Sie das Array sortieren. Sie können dies mit einem der Sortieralgorithmen tun. Ich habe schnell sortiert. Und dann überprüfe eine Position mit ihrer nächsten Position. Wenn sie nicht identisch sind, fügen Sie einen Wert in einem neuen Array hinzu, andernfalls überspringen Sie diese Iteration.
Beispielcode (Schnellsortierung):
%Vor%Duplikate entfernen:
%Vor%hey alles, was Sie diesen Code verwenden können, den ich erstelle !!!
%Vor%importieren Sie java.util. *;
öffentliche Klasse Duplikate {
%Vor%}