Properly removing an Integer from a List<Integer>
Posted
by
Yuval A
on Stack Overflow
See other posts from Stack Overflow
or by Yuval A
Published on 2010-12-26T14:25:35Z
Indexed on
2010/12/26
14:54 UTC
Read the original article
Hit count: 338
Here's a nice pitfall I just encountered. Consider a list of integers:
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(6);
list.add(7);
list.add(1);
Any educated guess on what happens when you execute list.remove(1)? What about list.remove(new Integer(1))? This can cause some nasty bugs.
What is the proper way to differentiate between remove(int index), which removes an element from given index and remove(Object o), which removes an element by reference, when dealing with lists of integers?
The main point to consider here is the one @Nikita mentioned - exact parameter matching takes precedence over auto-boxing.
© Stack Overflow or respective owner