# Objekte aus einer Arraylist löschen



## michael123 (14. Okt 2009)

Moin Moin,

eine ganz blöde Frage von einem Anfänger - sorry.

Ich möchte Objekte aus einer Arraylist löschen - wie geht das außer über den Index?
Ich habe nur die Methode remove (int index) gefunden.
Aber woher weiß ich denn wo mein gewünschtes Objekt an welcher Liste in der ArrayList steht? 

Oder besser gesagt: Wie lösche ich ein Objekt aus einer Arraylist außer über den Index??


----------



## faetzminator (14. Okt 2009)

Wenn du es nicht über den Index löschen willst, hast du evtl. den falschen Datentyp. Eine ultralahme (Worstcase O(n)) Möglichkeit wäre folgende: ArrayList (Java 2 Platform SE 5.0)


----------



## AlexH (14. Okt 2009)

michael123 hat gesagt.:


> Moin Moin,
> 
> eine ganz blöde Frage von einem Anfänger - sorry.
> 
> ...



1. Wenn ich richtig verstanden habe, das kann man ohne Index machen. 
Man braucht zuerst in dem Objekt die Methode *equals()* überschreiben.
2. dann mit hilfe *contains(Object o) * von Klasse ArrayList kann man entscheiden, ob ArrayList das Object enthält.
3. mit hilfe *remove(Object o)* kann man Object löschen.


----------



## hdi (14. Okt 2009)

> Wenn du es nicht über den Index löschen willst, hast du evtl. den falschen Datentyp



Ich benutze remove(Object) auch öfters. Was meinst du mit falschem Datentyp? Datentyp wovon?


----------



## eRaaaa (14. Okt 2009)

er meint vermutlich falsche datenstruktur. eine arraylist ist nunmal indexbasiert, wenn man indizes nicht mag, nunja... muss man sich andersweitig umschauen


----------



## Marco13 (14. Okt 2009)

AlexH hat gesagt.:


> 1. Wenn ich richtig verstanden habe, das kann man ohne Index machen.
> Man braucht zuerst in dem Objekt die Methode *equals()* überschreiben.
> 2. dann mit hilfe *contains(Object o) * von Klasse ArrayList kann man entscheiden, ob ArrayList das Object enthält.
> 3. mit hilfe *remove(Object o)* kann man Object löschen.



2 und 3 können zusammen gemacht werden: Remove kann man IMMER aufrufen, und es liefert true/false, je nachdem, ob das Objekt drin war oder nicht...


----------



## faetzminator (14. Okt 2009)

@eRaaaa: richtig  !


----------



## AlexH (14. Okt 2009)

Marco13 hat gesagt.:


> 2 und 3 können zusammen gemacht werden: Remove kann man IMMER aufrufen, und es liefert true/false, je nachdem, ob das Objekt drin war oder nicht...



Consensus!


----------

