gpt4 book ai didi

java - 声明为实例变量后是否可以更改数组的大小?

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:12 25 4
gpt4 key购买 nike

在我的作业中,我应该编写一个 born()addChildren() 方法。禁止使用List,因此我们只能使用数组。每个 Person 都有一个对象数组作为其实例变量(子对象)。当我声明它时我应该设置一个恒定的大小吗?例如;

private Person[] children = new Person[5]; 

或者在创建大小为0的children[]后是否可以使用这样的方法?

private Person[] children = new Person[0];

public void addChildren(Person x){
Person[] newArray = new Person[children.length+1];
System.arraycopy(children, 0, newArray, 0, children.length);
/*
* or this can be used:
* for(i=0;i<children.length;i++)
* children[i] = newArray[i];
*/

newArray[newArray.length-1] = x;
children = newArray;
}

当我寻找答案时,我在另一个网站上找到了这段代码,所以我不确定它在这种情况下是否能正常工作。提前致谢!

最佳答案

您无法修改原始数组的大小,因为它变成了常量分配的内存。您所做的只是创建一个新数组,复制前一个数组的元素,然后传递引用。如果您不能使用 ArrayList 或更高级的集合,那么您就无法更改它。

关于java - 声明为实例变量后是否可以更改数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29198523/

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