Java从列表<Integer>正确删除一个整数

这是我刚遇到的一个陷阱。考虑一个整数列表:

List<Integer> list = new ArrayList<Integer>();

list.add(5);

list.add(6);

list.add(7);

list.add(1);

关于执行时会发生什么的任何有根据的猜测list.remove(1)?list.remove(new Integer(1))呢 这可能会导致一些讨厌的错误。

在处理整数列表时,区分remove(int index)从给定索引remove(Object o)中删除元素的和,按引用删除元素的正确方法是什么?

这里要考虑的重点是提到的@Nikita-精确参数匹配优先于自动装箱。

回答:

Java总是调用最适合你的参数的方法。仅在没有不使用强制转换/自动装箱方法就无法调用的方法的情况下,才执行自动装箱和隐式向上转换。

List接口指定两个remove方法(请注意参数的命名):

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

这意味着list.remove(1)删除位置1的对象,并remove(new Integer(1))从该列表中删除指定元素的首次出现。

以上是 Java从列表&lt;Integer&gt;正确删除一个整数 的全部内容, 来源链接: utcz.com/qa/430738.html

回到顶部