use*_*029 1 java android arraylist
我创建了一个包含80个Arraylists的ArrayList.每个ArrayList里面的值都是1-9.
但是,当我从其中一个Arraylists中删除一个值时,将其删除.
ArrayList<List> available = new ArrayList<List>();
ArrayList<Integer> possibleValues = new ArrayList<Integer>();
for(int j = 1; j<=9; j++){
possibleValues.add(j);
}
for (int i = 0; i<=80; i++){
available.add(possibleValues);
}
int b = (int) available.get(0).get(2);
available.get(0).remove(0);
String s = available.get(80).toString();
System.out.println(" " + s);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
这里的问题是你已经添加了相同ArrayList possibleValues的available81次.因此,该available列表包含对同一possibleValues列表的81个引用.
通过这81个引用中的任何一个可以看到对列表所做的任何更改.
如果您不希望所有引用都可以看到更改,只需要一个,那么您需要创建81个要添加的列表副本:
for (int i = 0; i<=80; i++){
available.add(new ArrayList<Integer>(possibleValues));
}
Run Code Online (Sandbox Code Playgroud)