gpt4 book ai didi

java - 将列表转换为固定大小的数组

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:01 26 4
gpt4 key购买 nike

谁能解释一下为什么这个代码片段有效?

Object[] op = new Object[0];

ArrayList r = new ArrayList();
r.add("1");
r.add("3");
r.add("5");
r.add("6");
r.add("8");
r.add("10");

op = r.toArray();
System.out.println(op[3]);

这会打印出 6。我知道您可以将列表转换为数组,但我在想,如果数组的大小是固定的,那么您就不能再添加元素了。在这种情况下,数组 op 的大小固定为“0”,那么为什么/如何将列表元素添加到数组中?谢谢

最佳答案

您需要区分对数组对象的引用(即Object[] op)和实际的数组对象引用点。

Object[] op = new Object[0];

您正在创建一个大小为 0 的数组并将其分配给 op 引用。

但是,随着

op = r.toArray();

您正在为 op 引用分配一个新的数组对象。这个新的数组对象已通过 toArray() 方法创建并具有适当的大小。

使用 new Object[0]; 创建的早期数组对象现在悬空并接受垃圾回收。

关于java - 将列表转换为固定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21459205/

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