gpt4 book ai didi

java - 向 Arraylist 添加值

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:22 26 4
gpt4 key购买 nike

代码 1:

ArrayList arr = new ArrayList();
arr.add(3);
arr.add("ss");

代码 2:

ArrayList<Object> arr = new ArrayList<Object>();
arr.add(3);
arr.add("ss");

代码 3:

ArrayList<Object> arr = new ArrayList<Object>();
arr.add(new Integer(3));
arr.add(new String("ss"));

所有上述三个代码都工作正常..有人可以告诉我哪个是首选以及为什么..以及为什么当 Arraylist 未提及参数类型时 Eclipse 编译器总是发出警告..在此先感谢。 .

最佳答案

第一个简单规则:永远不要使用 String(String) 构造函数,它绝对没有用 (*)

所以 arr.add("ss") 就好了。

3 略有不同:3 是一个 int 字面量,它不是一个对象。只能将对象放入 List 中。所以 int 需要转换成 Integer 对象。在大多数情况下,这将自动为您完成(该过程称为自动装箱)。它有效地做与 Integer.valueOf(3) 相同的事情,可以(并将)避免创建新的 Integer 在某些情况下是实例。

所以实际上编写 arr.add(3) 通常 比使用 arr.add(new Integer(3)) 更好,因为它可以避免创建新的 Integer 对象,而是重用现有对象。

免责声明:我在这里重点关注第二个和第三个代码块之间的区别,几乎忽略了泛型部分。有关泛型的更多信息,请查看其他答案。

(*) 在一些模糊的极端情况下它 很有用,但是一旦您接触了这些情况,您就会知道永远不要将绝对陈述当作绝对;-)

关于java - 向 Arraylist 添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797034/

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