gpt4 book ai didi

java - 从 List 中正确删除整数

转载 作者:IT老高 更新时间:2023-10-28 12:18:13 24 4
gpt4 key购买 nike

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

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 mentioned - 精确的参数匹配优先于自动装箱。

最佳答案

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

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

  • 移除(对象o)
  • 移除(int index)

这意味着 list.remove(1) 会移除位置 1 的对象,而 remove(new Integer(1)) 会移除第一次出现的指定元素这个列表。

关于java - 从 List<Integer> 中正确删除整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com