# LinkedList, Collection, ArrayList, List. was denn bitte?



## julchen81 (25. Feb 2008)

Guten Morgen!

Aus einem Text lese ich Strings aus. Wenn ich einen neuen String auslese, möchte ich wissen, ob dieser bereits schon mal vorgekommen ist. Deshalb habe ich vor, diese Strings in irgendeiner Collection zu speichert. Jetzt hätte ich verschiedene probiert, aber bin mit keiner zufrieden:
LinkedList z.B. verlangt, dass ein Objekt und kein String übergeben wird.
Und die Klasse Collection bietet keine Methode wie indexOf(String s), um festzustellen, ob String s in der Collection ist oder nicht.

Was könnte ich bitte verwenden?

Liebe Grüße,  :wink: 
Julia


----------



## julchen81 (25. Feb 2008)

Noch eine Bemerkung:

Gerne bekomme ich z.B. schon bei der Definition die Meldung

ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized

Was heißt das dann?   :bahnhof: 

Julia


----------



## Niki (25. Feb 2008)

Das bedeutet dass du bei der ArrayList-Deklaration einen Typ angeben kannst. So dass nur Objekte von diesem Typ hinzugefügt werden können. Das sind die sogenannten Generics, die es erst ab Java 5 gibt:

```
List<String> myList = new ArrayList<String>();

  myList.add("hallo");

  System.out.println(myList.contains("hallo"));
```


----------



## julchen81 (25. Feb 2008)

super! Dankeschön, jetzt funktioniert's auch!


----------



## Beni (25. Feb 2008)

Mit einem Set könntest du die Suche noch effizienter machen.

```
Set<String> set = new HastSet<String>();
```
Sets sind so aufgebaut, dass nicht die ganze Collection durchlaufen werden muss nur um ein Element zu finden. Wenn du ein paar 1000 Elemente hast, wirst du den Unterschied deutlich bemerken :wink:


----------



## julchen81 (25. Feb 2008)

Gut zu wissen, dankeschön!  :wink: 

LG Julia


----------



## Atze (25. Feb 2008)

@julchen:

also ein string ist auch ein objekt, also kannst du es mit ruhigem gewissen zu deiner linked list hinzufügen.

außerdem gibt es dort auch die methode "contains()", die dir true zurückgibt, wenn ein bestimmter string schon in der liste ist


----------

