Java 2D ArrayList初始化行
我正在为一个折叠游戏制作一个2D Arraylist板,但现在只是做一个文本表示。我创建了电路板,但当我尝试用randomChar()填充它时,所有的行都会得到相同的随机字符。 我做错了什么Java 2D ArrayList初始化行,java,for-loop,random,arraylist,initialization,Java,For Loop,Random,Arraylist,Initialization,我正在为一个折叠游戏制作一个2D Arraylist板,但现在只是做一个文本表示。我创建了电路板,但当我尝试用randomChar()填充它时,所有的行都会得到相同的随机字符。 我做错了什么 public static void createBoard(int rSize, int cSize) { ArrayList<Character> row = new ArrayList<Character>(); ArrayList<ArrayList&l
public static void createBoard(int rSize, int cSize) {
ArrayList<Character> row = new ArrayList<Character>();
ArrayList<ArrayList<Character>> board = new ArrayList<ArrayList<Character>>();
for (int c = 0; c < cSize; c++) {
board.add(row);
}
for (int r = 0; r < rSize; r++) {
board.get(r).add(randomChar());
//row.add(randomChar());
// board.get(r).set(r, randomChar());
}
//prints out board in table form
for (ArrayList<Character> r : board) {
printRow(r);
}
System.out.println(board);
}
publicstaticvoidcreateboard(intrsize,intcsize){
ArrayList行=新的ArrayList();
ArrayList board=新的ArrayList();
for(int c=0;c
您正在将同一行多次添加到板中。必须添加唯一的行:
for (int c = 0; c < cSize; c++) {
board.add(new ArrayList<Character>());
}
for(int c=0;c
因为在下一行中存储的是同一对象的引用:
for (int c = 0; c < cSize; c++) {
board.add(row);
}
啊,好的。我想到了,但没想到会发生。非常感谢。
for (int c = 0; c < cSize; c++) {
board.add(new ArrayList<Character>());
}