doppelte Einträge im String Array löschen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

könnt ihr mir sage wie ich am besten doppelte Einträge aus einem String-Array entferne. Gibt es dazu fertige Funktionen?
 

xysawq

Bekanntes Mitglied
ich kenne nix fertiges, aber ich poste mal wie ich es machen würde:

Code:
for(int i=0; i<(stringArray.length - 1); i++)
{
	for(int j=(i + 1); j<stringArray.length; j++)
	{
		if(stringArray[i] == stringArray[j])
		{
			String[] temp = new String[stringArray.length - 1];
			System.arraycopy(stringArray, 0, temp, 0, j);
			System.arraycopy(stringArray, j+1, temp, j, temp.length);
			stringArray = temp;
		}
	}
}
 
M

maki

Gast
Warum kein Set?

Ist fertig, einfach zu nutzen, etc.pp.

Collections sollten verwendet werden wo möglich Arrays sind doch viel zu low-level für die meisten Aufgaben.

xysawq, solltest dich auch langsam von arrays und arraycopy trennen ;)
 

xysawq

Bekanntes Mitglied
Bin zu müde zum umdenken... mache grade ein Praktikum bei Siemens, und die machen das auch so rudimentär wie vor 20 Jahren... :p

Wenn ich dann irgendwann meine 20 Präsentationen und meine Abschlusspräsentation vorm großen Chef, sowie meine 50 Seiten Fachbericht weg habe werde ich mich mal "weiterbilden"...
 
M

maki

Gast
Set ist ein Interface, HashSet ist ein Implementierung, TreeSet eine andere, die Doku erklärt die Unterschiede ;) dir reicht das HashSet.

xysawq hat gesagt.:
Bin zu müde zum umdenken... mache grade ein Praktikum bei Siemens, und die machen das auch so rudimentär wie vor 20 Jahren... :p

Wenn ich dann irgendwann meine 20 Präsentationen und meine Abschlusspräsentation vorm großen Chef, sowie meine 50 Seiten Fachbericht weg habe werde ich mich mal "weiterbilden"...
Mag ja sein, aber diese Array-akrobatik ist Schnee von Vorgestern.
 
G

Guest

Gast
Anonymous hat gesagt.:
Hallo,

könnt ihr mir sage wie ich am besten doppelte Einträge aus einem String-Array entferne. Gibt es dazu fertige Funktionen?

Wie maki schon geschrieben hab bietet sich hier ein Set wunderbar an:

Code:
// sa ist hier dein besagtes String[] hab ja keine Ahnung wo das her kommt :)
Set<String> strings = new HashSet<String>();
for (int i = 0; i < sa.length; i++) {
    strings.add(sa[i]);
}
// Das Set enthält jetzt alle im String[] sa vorhandenen Strings und zwar jeden max. 1x
// Wenn du jetzt umbedingt wieder ein String[] haben willst kannst du auch einfach folgendes machen
sa = string.toArray(new String[0]);
 
G

Guest

Gast
Ist denn so ein SET auch einem Vector vorzuziehen. Bisher hab ich fast alles mit Vectoren gemacht.
 
G

Guest

Gast
Welchen Vorteil hat eigentlich diese Zeile:

Code:
Set<String> strings = new HashSet<String>();

gegenüber dieser:

Code:
HashSet<String> strings = new HashSet<String>();
 

FArt

Top Contributor
Anonymous hat gesagt.:
Ist denn so ein SET auch einem Vector vorzuziehen. Bisher hab ich fast alles mit Vectoren gemacht.

Ist was anderes. Vector ist synchronisiert (oft unnötig) und ist eine Liste. Was eine Liste und was ein Set ausmacht, kannst du in der Doku nachlesen.
 

xysawq

Bekanntes Mitglied
Auch wenn es Schnee von gestern ist, keinem ist mein Fehler aufgefallen ^^

Code:
for(int i=0; i<(stringArray.length - 1); i++)
{
   for(int j=(i + 1); j<stringArray.length; j++)
   {
      if(stringArray[i].equals(stringArray[j]))
      {
         String[] temp = new String[stringArray.length - 1];
         System.arraycopy(stringArray, 0, temp, 0, j);
         System.arraycopy(stringArray, j+1, temp, j, temp.length);
         stringArray = temp;
      }
   }
}

muss es richtig heißen... und die Steinzeitmenschen hätten sich damals eine so einfache Lösung auch gewünscht, da gabs noch keine SETs :p
 
M

maki

Gast
Anonymous hat gesagt.:
Vector ist zu vermeiden, genauso wie Hashtable.

:bahnhof: warum denn das? Ich komme so gut mit Vectoren klar...
Wenn du kein Swing einsetzt welches Vector erzwingt, solltest du die modernen Collections verwenden, Vector und Hashtable sind überbleibsel aus der pre-Collections Ära, wurden zwar nachträglich geändert, allerdings fehlt die klare Linie.
 
G

Guest

Gast
Anonymous hat gesagt.:
Welchen Vorteil hat eigentlich diese Zeile:

Code:
Set<String> strings = new HashSet<String>();

gegenüber dieser:

Code:
HashSet<String> strings = new HashSet<String>();

An dieser Stelle bietet es keinen Vorteil. Dass ich Set statt HashSet genommen habe liegt bei mir daran, dass ich an solchen Stellen immer die Interfaces nehme wenn es möglich ist.

Bei Lists mache ich das immer genauso


Code:
List list = new ArrayList(); // Generics ma außen vor gelassen :)

Ein Vorteil kann hier vielleicht sein, dass ich bei List / Set nicht an einen festen Typ von Set / List gebunden bin. Lege ich ein HashSet an dann habe ich eben ein HashSet. Lege ich aber ein Set an (z. B. eben dann mit = new HashSet) kann ich an einer späteren Stelle aber auch sagen = new TreeSet ohne mir ein neues Objekt machen zu müssen.

Ist ein schlechtes Beispiel aber vielleicht verstehst du was ich meine :D
 

xysawq

Bekanntes Mitglied
ohje, da hab ich mir wohl gestern einen mecker-vogel angelacht der nur mist von sich gibt... naja... kann man wohl nix machen

hoffentlich verPFEIFT der sich bald!
 

Der Müde Joe

Top Contributor
Anonymous hat gesagt.:
Vector ist zu vermeiden, genauso wie Hashtable.

:bahnhof: warum denn das? Ich komme so gut mit Vectoren klar...

Vector ist eigentlich "veraltet". Mit java 1.2 kam das neue Collection Framework und
Vector wurde da reingedrückt um irgenwie zu passen. Aus kompatibilitätsgründen kann
die Klasse nicht entfernt werden. Stack erbt von Vector (brrrrrrr).

für diese Funktionalität List benutzen. Wenn synchronosiert sein soll
Collections.synchronizedList(list)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
S CSV auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 8
E Array doppelte Einträge Java Basics - Anfänger-Themen 2
S Variablen Array in ArrayList auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 4
P Doppelte Einträge in eine List Java Basics - Anfänger-Themen 5
M doppelte Einträge Emailempfänger... Java Basics - Anfänger-Themen 35
G txt-File als DB>doppelte Einträge verhindern/Suche/... Java Basics - Anfänger-Themen 10
P Doppelte Einträge in mehreren Textfiles finden und ausgeben Java Basics - Anfänger-Themen 8
J doppelte Einträge in einem Array Java Basics - Anfänger-Themen 7
-horn- Doppelte Einträge entfernen, aus Array, List oder sonstwas Java Basics - Anfänger-Themen 9
G _NUR_ doppelte Einträge in einem Array behalten Java Basics - Anfänger-Themen 3
0 ArrayList - doppelte Einträge entfernen? Java Basics - Anfänger-Themen 9
S Methode, um doppelte Einträge in Array zu finden Java Basics - Anfänger-Themen 5
G Wie doppelte Einträge in ComboBox vermeiden ? Java Basics - Anfänger-Themen 9
M Doppelte Einträge in einer datei löschen(nach timestamp)! Java Basics - Anfänger-Themen 4
D Doppelte Einträge einer Liste löschen Java Basics - Anfänger-Themen 6
B 2 ELists vergleichen und doppelte Einträge löschen Java Basics - Anfänger-Themen 11
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
C das Doppelte des Wertes in der Console ausgeben Java Basics - Anfänger-Themen 10
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
H Frage zur ermittlung eines doppelte Paars aus Sotieralgorithmus Java Basics - Anfänger-Themen 4
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
L Doppelte Schleife Anpassen Java Basics - Anfänger-Themen 5
W Map doppelte Values löschen Java Basics - Anfänger-Themen 3
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
T Klassen Doppelte Elemente aus Container entfernen Java Basics - Anfänger-Themen 6
M Erste Schritte Doppelte Ausgabe? (JList) Java Basics - Anfänger-Themen 1
kilopack15 Array auf doppelte Elemente überprüfen Java Basics - Anfänger-Themen 16
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
K Input/Output Doppelte Ausgabe Java Basics - Anfänger-Themen 5
S Erste Schritte Doppelte Ausführung? Java Basics - Anfänger-Themen 4
E Threads Doppelte Threads beenden Java Basics - Anfänger-Themen 4
J Variablen Doppelte Werte in Int Array Java Basics - Anfänger-Themen 10
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5
O Doppelte For-Scheife Java Basics - Anfänger-Themen 6
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
P Doppelte Datensätze aus CSV-Datei löschen Java Basics - Anfänger-Themen 17
B Doppelte Werte aus Array entfernen ohne Import - Algorithmus Java Basics - Anfänger-Themen 5
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
R Doppelte löschen Java Basics - Anfänger-Themen 6
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
U Doppelte Interfcae Implementierung Java Basics - Anfänger-Themen 10
DerGroßeNargus Doppelte Liste initialisieren Java Basics - Anfänger-Themen 2
H Datentypen Doppelte Verkette Liste - Verständnissproblem Java Basics - Anfänger-Themen 5
T Doppelte Liste Java Basics - Anfänger-Themen 8
R Schleife Doppelte Daten löschen Java Basics - Anfänger-Themen 3
V Doppelte Zahl suchen Java Basics - Anfänger-Themen 14
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
G List suchen und doppelte rausfiltern Java Basics - Anfänger-Themen 3
T Doppelte Anführungszeichen ersetzen?? Java Basics - Anfänger-Themen 4
Luk10 Doppelte for-schleife Java Basics - Anfänger-Themen 7
T Array: Doppelte Charakteren löschen - Ein Lösungsversuch Java Basics - Anfänger-Themen 37
P doppelte Werte im Array ausgeben. Java Basics - Anfänger-Themen 4
M Aufgabe: Array auf doppelte Zahl prüfen Java Basics - Anfänger-Themen 8
J Doppelte Integer aus einem Array entfernen - seltsames Prob. Java Basics - Anfänger-Themen 5
C Doppelte Punktnotation Java Basics - Anfänger-Themen 2
F doppelte Elemente in HashSet Java Basics - Anfänger-Themen 5
G java.util.LinkedList: Doppelte Elemente vermeiden Java Basics - Anfänger-Themen 5
S "doppelte" if-Anweisung Java Basics - Anfänger-Themen 10
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
F Doppelte Datensätze zusammenziehen Java Basics - Anfänger-Themen 2
V Doppelte Zahlen bei Lotto verhindern Java Basics - Anfänger-Themen 11
N ResultSet auf Einträge überprüfen Java Basics - Anfänger-Themen 5
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
M Erste Schritte JList einträge Java Basics - Anfänger-Themen 1
P Erste Schritte Einträge aus verschachtelter Map chronoligisch ausgeben Java Basics - Anfänger-Themen 5
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
T Einträge in jComboBox aus Liste übernehmen Java Basics - Anfänger-Themen 1
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
D Javaliste auf gleiche Einträge überprüfen Java Basics - Anfänger-Themen 2
C Datentypen Array-Einträge überhalb der Array-Länge - welcher Wert? Java Basics - Anfänger-Themen 5
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
M Ziffer einträge vergrößern Java Basics - Anfänger-Themen 16
H Einträge aus Array löschen Java Basics - Anfänger-Themen 8
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
K ArrayList.add() überschreibt vorhandene Einträge. Java Basics - Anfänger-Themen 12
M Gewisse Einträge aus einer ArrayList löschen Java Basics - Anfänger-Themen 3
K ArrayList Zugreifen auf Einträge Java Basics - Anfänger-Themen 8
B 2D-Array, gleiche Einträge prüfen Java Basics - Anfänger-Themen 5
F Hiberate-Log-Einträge Java Basics - Anfänger-Themen 2
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
kitz Mehrere Einträge auswerfen? Java Basics - Anfänger-Themen 20
E Darstellung der Choice Einträge Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben