如何在二维arrayList中设置特定索引

log*_*ger 1 java arraylist

我有以下内容

ArrayList<ArrayList<Integer>> row = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> column = new ArrayList<Integer>();
for(int i = 0; i < 12; i++) {
    column.add(0);
}
for(int j=0; j < 12 ; j++) {
    row.add(column);
}
Run Code Online (Sandbox Code Playgroud)

它给了我

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

我想要的是替换arrayList中的特定索引.让我们说第三个索引的第二个arrayList和一个9.

row.get(2).set(3, 9);
Run Code Online (Sandbox Code Playgroud)

但是上面用9代替整个列.我应该如何将arrayList设置为特定而不影响其他行.

luk*_*302 5

您当前添加了12次相同的精确列,但是您应该添加12个不同的列,所有这些都最初以相同的方式成形:

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

for(int j=0; j < 12 ; j++) {
    ArrayList<Integer> column = new ArrayList<Integer>();
    for(int i = 0; i < 12; i++) {
        column.add(0);
    }
    row.add(column);
}
Run Code Online (Sandbox Code Playgroud)