将int添加到数组中

时间:2014-01-10 18:25:56

标签: java arrays

首先不要把它称为副本,除非你真的找到一个适合我正在尝试做的线程,因为我已经完成了大约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 []?

3 个答案:

答案 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或首先指定数组大小。