首先不要把它称为副本,除非你真的找到一个适合我正在尝试做的线程,因为我已经完成了大约50个没有帮助的线程。
〜问题:我不知道如何正确地将整数添加到像“private int test[] ={}
”这样的数组中
〜我的代码:
private int generatedList[] = {};
private int lastInt = 1;
private void startList() {
if (generatedList.length == 30000) {
System.out.println(generatedList);
} else {
generatedList[lastInt+1] = generatedList[lastInt];
lastInt++;
System.out.println(generatedList);
startList();
}
}
〜我想要完成的事情:如果列表的长度小于30,000,则将最后一个int添加到数组中,然后添加lastInt ++,所以在循环后说5次列表将打印如下:1,2,3 ,4,5-
如何将“lastInt”添加到generatedList []?
答案 0 :(得分:8)
Java中的数组具有固定大小。事实上,你声明的那个大小为0。你将无法附加到它的末尾。查看ArrayList课程,它会对您有所帮助。
private ArrayList<Integer> generatedList;
...
generatedList.add(1234);
但是,您的代码存在更大的问题。您的递归实现将非常缓慢,并且它没有为数组中的第一个值进行初始化。使用固定大小为30,000的原始数组会更好,并且只需从0..30k循环并按索引填充值。我把它作为练习留给你,因为这可能与一些家庭作业有关:)
答案 1 :(得分:4)
阵列不可扩展。这是设计的。
我建议使用ArrayList。它就像一个数组(可以索引任何属性,在运行时复杂性方面的工作速度几乎一样快),但具有可以添加和删除项的附加属性。
执行此操作的简便方法是将generatedList
更改为ArrayList<Integer>
。如果要保留数组,可以始终创建新数组并复制内容。 (但ArrayLists更容易。)
答案 2 :(得分:3)
您尝试将新元素添加到大小为零的数组中。使用arraylist或首先指定数组大小。