Uniquesarray?
-
hallo ich habe folgendes problem:
ich muss ein array auf doppelte einträge prüfen und diese herrauslöschen,
bzw. diese wenn sie schon vorhanden sind gar nicht erst einfügen.bisher habe ich das so gelöst:
tmp=query.getField(1); if (Verweis(tmp,1).equals("0")) continue; if (heads.indexOf(tmp)<0) { heads = heads + tmp + "@"; }
Diese lösung funktioniert zwar, ist aber weder sonderlich elegant noch performant.
Select Distinct ist nicht, da ich nicht auf eine sql datenbank zugreife.
hab ihr ne bessere idee?
Danke schonmal
-
Vielleicht wäre dein Problem mit einer Hashtable besser gelöst?
Edit: Für das nächste Mal. Bitte immer nur einen Thread erzeugen. Registrierte Mitglieder haben unter anderem die Möglichkeit Postings zu editieren. Mach doch davon gebrauch?
-
habe ich mehrfach gepostet?
sorry - hatte probleme mit dem inet - tut mir leid
-
nuja meine frage ist glaube ich etwas falsch angekommen:
ich brauche ein array in dem sichergestellt ist, dass jeder wert nur einmal vorkommt, besser wäre ein algorithmus der der die doubletten am ende raufwirft - ich lauftzeitmäßig günstiger
-
ich brauche ein array in dem sichergestellt ist, dass jeder wert nur einmal vorkommt
Muss es denn unbedingt ein Array sein?
Ansonsten könnte eventuell ein BitSet (wenn du nur Zahlen hast) oder eben irgend eine Unterklasse von java.util.set weiterhelfen. (HashSet)
-
Also doppelte Einträge sollen rausfiltert werden?
Vielleicht sowas:ArrayList al = new ArrayList(12); for (int i = 0; i < 12; ++i) { al.add(dasarray[i]); } String s; String o; for (int i = 0; i < al.size(); ++i) { s = (String)al.get(i); for (int j = i; j < al.size(); ++j) { o = (String)al.get(j); if (s.equals(o)) al.remove(j); } }
Also ich weis nicht ob das schnell ist, aber so in der Art sollte das klappen, oder?
Und nach dieser >Prozedur kann man aus der ArrayList ja wieder ein array kriegen, wo dann keine doppelten Einträge drinnen sein sollten.Also schneller als deine Lösung sollte es auf jeden Fall sein. Ich glaube mal gehört zu haben, dass Sachen wie "String + String + String" weder besonders schnell noch sparsam an Speicher sein sollen. Liege ich da falsch?
Gut bei mir wird ne menge gecastet, aber das sollte sich mit Generics ja ändern, oder?