Java中ArrayList中ArrayList的大小增加

时间:2018-10-08 15:36:10

标签: java arraylist collections

每当添加新值时,我都试图在ArrayList内增加ArrayList的大小,但是我不确定这样做的正确方法。这就是我现在所拥有的:

public ArrayList<ArrayList<Integer>> outerList;

public int addValue(int value) {
    int a = 0;

    ArrayList<Integer> innerList = new ArrayList<Integer>();

    if (noValue(value) == true) { // noValue checks if the value exists at a position in outerList and returns true if it's empty
            innerList.add(value); // innerList has now size 1
            outerList.add(innerList); 

    }

    else {
            a += 1;
            innerList.add(value);
            outerList.add(innerList);
    }

    return a; 

}

但是根据我的测试,innerList的大小仍然为1。

2 个答案:

答案 0 :(得分:5)

  

但是根据我的测试,innerList的大小仍然为1。

这是因为在您的addValue()方法中,您创建了一个新的innerList并将其添加到列表中。因此,外部ArrayList将由很多ArrayList组成,其中只有一个对象。

要更改此设置,您应该使用get()方法获取内部的ArrayList,然后然后将项目添加到其中。像这样:

outerList.get(index).add(value);

index是要向其中添加值的内部列表的索引

答案 1 :(得分:3)

您永远不会从outerList中获得任何东西,innerList的所有实例将始终被重新创建,然后添加一个新条目。然后,将innerList添加到outerList,再也没有碰过。