# jedes Element in Liste nur einmal



## ARadauer (29. Nov 2006)

Hallo ich habe konkret in einer Datei so 120000 Stings die ich nach einander einlesen.
Ich möchte diese Strings in einer Struktur verwallten, aber sicherstellen, das nur jedes einmal vorkommt.

{"AA", "BB", "BB", "CC", "AA"} soll liefern: AA, BB, CC

was nehm ich da am besten? ich hätte es mit einer ArrayList versucht und vor dem einfügen mit contains überprüft ob das element schon vorhanden ist. Jedoch überprüft contains auf genau das objekt und benutzt nicht die equals methode von string.

ich habs dann mit einer Hashtable verusucht, in dem ich die Strings als Schlüßel benutze, und die values einfach null setzte. macht das sinn? was wäre eine alternative


danke für die hilfe


----------



## Wildcard (29. Nov 2006)

Nimm doch ein HashSet. Dann hast du jedes Objekt automatisch nur einmal.


----------



## SlaterB (29. Nov 2006)

ARadauer hat gesagt.:
			
		

> ch hätte es mit einer ArrayList versucht und vor dem einfügen mit contains überprüft ob das element schon vorhanden ist. Jedoch überprüft contains auf genau das objekt und benutzt nicht die equals methode von string.


das ist Quatsch, selbstverständlich wird equals benutzt



> Returns true if this collection contains the specified element. More formally, returns true if and only if this collection contains at least one element e such that (o==null ? e==null : o.equals(e)).
> 
> This implementation iterates over the elements in the collection, checking each element in turn for equality with the specified element.



Hashset ist natürlich dennoch extrem schneller


----------

