正确从列表中删除整数

2023-12-09

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

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),在处理整数列表时通过引用删除元素?


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


Java 总是调用最适合你的论点的方法。仅当没有可以在不强制转换/自动装箱的情况下调用的方法时,才会执行自动装箱和隐式向上转换。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确从列表中删除整数 的相关文章

随机推荐