# Remove Methode von List



## hans_müller (7. Mrz 2011)

hey,

kann mir villt jemand sagen, wieso die remove methode einen integer zurück gibt und nicht, wie in der java api angegebenen einen boolean wert??


```
List<Integer> liste= new ArrayList<Integer>();

public boolean methode(int nummer) {
   if (this.liste.contains(number)) {
        return this.liste.remove(number);  //verlangt int
   }
        return false;
   }
}
```

Gruß


----------



## Marco13 (7. Mrz 2011)

Eine List<Integer> ist ein bißchen heikel. Es gibt zwei Methoden in "List":
E remove(int index) Removes the element at the specified position in this list (optional operation).
boolean remove(Object o) Removes the first occurrence of the specified element from this list, if it is present (optional operation).

Bei einer List<Integer> macht es also einen Unterschied, ob man einen "int" oder einen "Integer" übergibt (normalerweise wird das durch Autoboxing/Autounboxing gleich behandelt). Je nachdem, ob "nummer" ein Eintrag oder ein Index ist, solltest du dort entweder einen boolean oder einen Integer als Rückgabewert erwarten.

EDIT: Ggf. eben auch [c]list.remove(Integer.valueOf(nummer))[/c] verwenden, wenn es um den _Eintrag_ gehen soll (und nicht um den index)


----------



## André Uhres (7. Mrz 2011)

Oder so: 
	
	
	
	





```
public boolean methode(Integer number) {
```

Gruß,
André


----------



## Marco13 (7. Mrz 2011)

Sofern es um den Eintrag geht wäre das natürlich besser.


----------



## hans_müller (7. Mrz 2011)

ja es geht um den eintrag,
vielen danke für die schnellen antworten 

Gruß Hans


----------



## kirax (7. Mrz 2011)

Marco13 hat gesagt.:


> Je nachdem, ob "nummer" ein Eintrag oder ein Index ist



Das Problem ist eben wenn beides möglich ist 

```
List<Integer> liste = new ArrayList<Integer>(new Integer[]{2,1,0});
```

Also am besten eins der vorgeschlagenen Workarounds nehmen


----------



## Marco13 (7. Mrz 2011)

Joa, ich meinte ja: Wenn es ein Integer ist, ist es ein Eintrag, und wenn es ein int ist, ist es ein Index.


----------

