Here\'s a nice pitfall I just encountered. Consider a list of integers:
List list = new ArrayList(); list.add(5); list.add(6);
list.remove(4) is an exact match of list.remove(int index), so it will be called. If you want to call list.remove(Object) do the following: list.remove((Integer)4).
list.remove(4)
list.remove(int index)
list.remove(Object)
list.remove((Integer)4)