将int添加到数组
问题描述:
首先不要将它称为重复的,除非实际上找到一个线程适用于我正在尝试执行的操作,因为我已经浏览了大约50个无助的线程。将int添加到数组
〜问题:我不知道如何正确地添加到像数组的整数“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 []?
答
Java中的数组的大小是固定的。事实上,你声明的那个大小为0。您将无法追加到最后。查看ArrayList课程,它会帮助你。
private ArrayList<Integer> generatedList;
...
generatedList.add(1234);
但是,您的代码存在更大的问题。你的递归实现将会非常慢,并且它没有初始化数组中的第一个值。使用固定大小30,000的基本数组会更好,并且只需从0..30k循环并按索引填充值。我把它作为一个练习,因为这可能与一些作业有关:)
答
数组不可扩展。这是设计。
我建议使用ArrayList。它就像一个数组(可以对任何属性进行索引,就运行时复杂性而言几乎同样快),但具有可以添加和删除项目的其他属性。
做到这一点的简单方法是将generatedList
更改为ArrayList<Integer>
。如果你想保存一个数组,你总是可以创建一个新的数组并复制这些内容。 (尽管ArrayLists比较容易。)
答
您试图将新元素添加到大小为零的数组中。使用数组列表或首先指定数组大小。
您不能将任何东西放入长度为0的数组中。而且,数组没有动态长度。 –
数组不能通过设计扩展。如果你想添加到数组中,你需要创建一个新的数组并复制内容。我建议使用'ArrayList',因为它是类似数组的,你可以添加/删除它。 – ashes999
另外,(这对于很多语言来说都是通用的),一旦创建数组,它就不能生长。看ArrayList和朋友。 –