每当添加新值时,我都试图在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。
答案 0 :(得分:5)
但是根据我的测试,
innerList
的大小仍然为1。
这是因为在您的addValue()
方法中,您创建了一个新的innerList
并将其添加到列表中。因此,外部ArrayList
将由很多ArrayList
组成,其中只有一个对象。
要更改此设置,您应该使用get()
方法获取内部的ArrayList
,然后然后将项目添加到其中。像这样:
outerList.get(index).add(value);
index
是要向其中添加值的内部列表的索引
答案 1 :(得分:3)
您永远不会从outerList
中获得任何东西,innerList
的所有实例将始终被重新创建,然后添加一个新条目。然后,将innerList
添加到outerList
,再也没有碰过。