Prüfen, ob in einer ArrayList etwas ist (Java)?

3 Antworten

Ein Array oder eine Liste zu verwenden ergibt hier keinen Sinn. Du willst eine Collection, welche keine doppelten Elemente enthält. Genau diese Datenstruktur ist ein Set:

http://download.oracle.com/javase/tutorial/collections/interfaces/set.html

ArchEnema  07.06.2011, 00:11

Ein LinkedHashSet wäre sinnvoll, weil es die Reihenfolge der enthaltenen Objekte beibehält (wie eine Liste). Ein Set an sich garantiert erstmal keine Reihenfolge - kann jedes mal was anderes rauskommen.

0

der code macht absolut keinen sinn. Du übergibst der methode eine arraylist als parameter und dann machst du arraylist = new ArrayList();

Warum?!

ob eine ArrayList leer ist, kannst du mit ArrayList.isEmpty() überprüfen.

Alle Container die das Collection-Interface implementieren stellen eine Methode contains(Object obj) zur Verfügung, die true zurückgibt falls das übergebene Objekt enthalten ist. Hierbei wird mit equals() geprüft, nicht mittels == !

yobabyyobabyyo  05.06.2011, 22:09

Das ist ja schön und gut, bringt für die Aufgabenstellung aber nichts. Denn zwei wertgleiche Strings können in Java vollkommen verschiedene Objekte sein. Einfaches Beispiel:

List list = new ArrayList();list.add("test");...String aString = "test";if (list.contains(aString)) // kann klappen - muss aber nicht
0
ArchEnema  07.06.2011, 00:04
@yobabyyobabyyo

Genau deshalb verwenden sämtliche Collections auch equals() um Objekte zu vergleichen, etwa bei contains(). Dann kommt auch true raus, wenn es nicht das selbe Stringobjekt ist, aber der selbe Text drinne ist.

Er will sicher nicht mehrere wertgleiche Strings in seiner Collection haben, wenn er zweimal den selben Text eintippt. Hab ich jedenfalls so verstanden...

0