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从列表<Integer>正确删除一个整数 的全部内容, 来源链接: utcz.com/qa/430738.html