Duplikate aus Integer-Array entfernen

8

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}

sein

Folgendes habe ich bisher gemacht

%Vor%     
Ali-J8 17.12.2012, 10:06
quelle

19 Antworten

6

versuche das -

%Vor%     
Subhrajyoti Majumder 17.12.2012 10:18
quelle
4

Um die Reihenfolge beizubehalten und Duplikate im Integer-Array zu entfernen, können Sie Folgendes versuchen:

%Vor%

Hoffe, das hilft.

    
buddy24 28.07.2013 07:38
quelle
2

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.

    
Gaston Flores 28.07.2013 17:32
quelle
2

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%     
Otto Kocebu 01.02.2015 19:45
quelle
1
%Vor%     
user2277918 19.11.2013 07:00
quelle
0

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 .

    
Sumit Singh 17.12.2012 10:11
quelle
0

Iteriere über das Array und fülle ein Set, da Sets keine Duplikate enthalten können. Kopieren Sie dann die Elemente aus der Menge in ein neues Array und geben Sie sie zurück. Dies ist unten gezeigt:

%Vor%     
dogbane 17.12.2012 10:31
quelle
0

Versuchen Sie es

%Vor%

Bearbeiten: Aktualisiert mit Apache Lang , um in Grundelemente zu konvertieren.

    
Jayamohan 17.12.2012 10:14
quelle
0

Sie können auch die Guava-Bibliothek von Google verwenden und ImmutableSet tue

%Vor%     
RNJ 17.12.2012 10:47
quelle
0
%Vor%

Die Ausgabe ist: [2, 3, 4, 5]

    
OCJP 17.12.2012 11:12
quelle
0

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.

    
Anders R. Bystrup 17.12.2012 10:11
quelle
0

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%     
rokonoid 28.07.2013 08:45
quelle
0

Sie können HashSet verwenden, das dulplicate-Elemente nicht zulässt

%Vor%

[2, 3, 4, 5, 6]

    
Sheel 28.07.2013 09:07
quelle
0
%Vor%     
user3550006 18.04.2014 19:32
quelle
0

hey alles, was Sie diesen Code verwenden können, den ich erstelle !!!

%Vor%     
Andreh Abboud 11.10.2016 02:22
quelle
0

Das hat für mich funktioniert:

%Vor%     
Koray Tugay 17.04.2017 18:44
quelle
0

Sie können so etwas tun

%Vor%     
Mathias Stavrou 14.12.2017 13:32
quelle
-1

importieren Sie java.util. *;

öffentliche Klasse Duplikate {

%Vor%

}

    
Kianoush M 24.08.2017 23:17
quelle
-2

öffentliche Klasse Foo {

%Vor%

} Ausgabe: 1, 6, 5896, 9, 100, 7, 1000, 8, 0, 10, 90, 4,

    
Guest 28.05.2015 03:56
quelle

Tags und Links