ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1526
1526
EMPFEHLEN
-
Hallo,
habe ein kleines Problem.
Wie kann ich doppelte Einträge aus einem Vector filtern bzw. löschen?
(Vector hat nur Strings)
Ich hoffe mir kann Jemand hier helfen.
-
13.10.04 16:41 #2
Nimm einfach statt Vector ein Set: es verhindert automatisch doppelte Einträge.
-
13.10.04 16:55 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Siehe:
...oder verwende gleich eine Set Implementierung ... as Vincentius just said.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/* * Created on 13.10.2004 */ package de.tutorials; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.Vector; /** * @author Darimont * */ public class Test08 { public static void main(String[] args) { Vector v = new Vector(); v.add("a"); v.add("a"); v.add("b"); v.add("a"); v.add("c"); v.add("d"); v.add("c"); Set set = new HashSet(v); for (Iterator iter = set.iterator(); iter.hasNext();) { System.out.println(iter.next()); } } } bzw. so: /* * Created on 13.10.2004 */ package de.tutorials; import java.util.HashSet; import java.util.Set; import java.util.Vector; /** * @author Darimont * */ public class Test08 { public static void main(String[] args) { Vector v = new Vector(); v.add("a"); v.add("a"); v.add("b"); v.add("a"); v.add("c"); v.add("d"); v.add("c"); v.add("a"); Set set = new HashSet(v); v = new Vector(set); System.out.println(v); } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
13.10.04 17:06 #4
Hi!
Benutze keinen Vector, sondern ein Collectiontyp der von Anfang an keine doppelten Einträge zulässt, wie alle Klassen, die das Interface Set implementieren (z.B. HashSet).
Kommst du nicht um die Verwendung von einem Vector herum, dann kannst du ihn folgendermassen von doppelten Einträgen säubern
Code :1 2 3 4 5 6 7 8 9
Vector vec = new Vector(); vec.add("bla"); vec.add("bla"); HashSet set = new HashSet(); for (int i = vec.size() - 1; i >= 0; i--) { if (!set.add(vec.elementAt(i))) { System.out.println("Element " + i + " gabs schon"); } }
Das set enthält dann keine doppelten Einträge mehr.
Die for-Schleife ist eigentlich eine ganz normale for-Schleife, die bloss eine kleine Optimierung enthält. Sozusagen als kleiner Denkanstoss
Grüsse TrueSun
edit:
Weia, wie langsam poste ich denn?!
Und der Konstruktoraufruf new HashSet(new Vector()); ist wahrscheinlich das einfachste und beste.Denken gefärdet die Gewohnheit
-
Ihr seit echt Spitze!
Weißgar nicht wie ich mich bei Euch bedanken kann.
Respekt
Ähnliche Themen
-
Prüfen von doppelten Einträgen mit SQL Selectbefehl
Von Naui im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 11.02.10, 15:26 -
Sortierte Liste mit doppelten Einträgen
Von dertobian im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 23.10.07, 12:05 -
ausgabe datensätze mit doppelten einträgen
Von scalatore im Forum PHPAntworten: 5Letzter Beitrag: 03.11.06, 18:03 -
Suche nach doppelten Einträgen (Mysql)
Von Deletemaster im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 04.02.05, 21:18 -
Löschen von doppelten Einträgen
Von meinrock im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 05.03.04, 10:33





Zitieren

Login





