Properly removing an Integer from a List

前端 未结 8 1861
面向向阳花
面向向阳花 2020-11-22 03:57

Here\'s a nice pitfall I just encountered. Consider a list of integers:

List list = new ArrayList();
list.add(5);
list.add(6);         


        
8条回答
  •  暖寄归人
    2020-11-22 04:46

    Java always calls the method that best suits your argument. Auto boxing and implicit upcasting is only performed if there's no method which can be called without casting / auto boxing.

    The List interface specifies two remove methods (please note the naming of the arguments):

    • remove(Object o)
    • remove(int index)

    That means that list.remove(1) removes the object at position 1 and remove(new Integer(1)) removes the first occurrence of the specified element from this list.

提交回复
热议问题