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: 282
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