# LinkedList Auslesen und Objekt Löschen



## Abbadon (13. Dez 2009)

Hallo zusammen,
ich habe hier grade irgendwie ein problem mit der LinkedList und dem Löschen eines Objektes das an einer beliebigen stelle in der Liste steckt. Ich kenne aber den index des Objektes nicht vorher. 
Sonst könnte ich ja sagen lösche das Objekt mit dem index. 
Wie bekomme ich nun am besten und effektivsten den Index des Objektes um dann ein remove auszuführen?

Meistens bekomme ich ein NullPointerException oder IndexOutOfBounds: index -1, size1
Kann mir da jemand weiter helfen?
Habe schon ein Bischen rumprobiert get bringt mir nichts indexOf bringt mir irgendwie nichts. Stehe grade auf dem Schlauch.

Gruß


----------



## Marco13 (13. Dez 2009)

Mit linkedList.remove(dasObjekt) sollte es eigentlich gelöscht werden - egal, welchen Index es hat ???:L


----------



## javimka (13. Dez 2009)

Kannst du nicht auch einfach list.remove(object) aufrufen, um object aus der Liste zu entfernen?


----------



## Abbadon (13. Dez 2009)

Normal ja,
aber aus irgendeinen grund Löscht der mir immer nur das letzte Objekt in der Liste aber ich  bekomme das Objekt das auf den Index wert 0 liegt nicht gelöscht. Ich bekomme dann wie gesagt entweder eine NullPointerException oder eine IndexOutOfBoundsException geworfen.
Das Objekt übergebe ich nach dem Löschen den null wert um diese Excpetion zu vermeiden aber das scheind dem nicht zu interessieren. 
Mein code schaut so aus 

```
public int index() {
listIndex =list.indexOf(objekt);
		
System.out.println(listIndex);
return listIndex;
}
```
So ich lasse mir das Objekt in einer eigenen Methode auslesen und mir den wert zurückgeben.

```
public void close() {
	if(list.indexOf(objekt) ==0){
		list.getFirst();
		list.removeFirst();
		objekt = null;
	} else {
		list.remove(index());
		objekt = null;
	}
}
```
Das ist die zweite methode in der ich dann prüfe ob der Index der liste gleich 0 ist. Weil dann kann ich sagen nimm das erste Objekt und Lösche es. Ansonsten nimm das Objekt das in der Methode index ermittelt wurde.
Aber denoch gibt es Exceptions. 
Also da bin ich am rätseln wo der fehler liegt.


----------



## Marco13 (13. Dez 2009)

:autsch: Was soll das denn sein? Wenn du das Objekt entfernen willst, rufe
list.remove(objekt);
auf - welchen index es hat (und ob es erste oder 123ste Element ist) ist dann egal. Und wenn du den Index DOCH wissen willst:
int index = list.indexOf(objekt);
liefert den Index, oder -1, falls das Objekt nicht in der Liste ist.


----------

