2 回答

TA貢獻1851條經(jīng)驗 獲得超4個贊
問題似乎出現(xiàn)在創(chuàng)建中:您可能為每一行使用相同的列 ArrayList 對象。
// Error:
ArrayList<String> row = new ArrrayList<>();
row.add("...");
row.add("...");
row.add("...");
for (int i = 0; i < 3; ++i) {
board.add(row);
}
本來應(yīng)該:
for (int i = 0; i < 3; ++i) {
ArrayList<String> row = new ArrrayList<>();
row.add("...");
row.add("...");
row.add("...");
board.add(row);
}
同樣的概念錯誤意味著:不需要這樣做:
board.set(2, updateRow); // Not needed.
更改板持有的 updateRow 對象中的條目是通過引用完成的。
一些技巧:
這里可以使用
String[][]
.將顯示/視圖(字符串)與數(shù)據(jù)模型(字符?)分開更容易,所以也許
char[][] board = new char[3][3];

TA貢獻2051條經(jīng)驗 獲得超10個贊
我已經(jīng)使用了您的代碼并添加了顯示功能,它給了我預(yù)期的輸出。我想您可能需要檢查顯示功能或創(chuàng)建板的方式。下面是我使用的顯示功能
public static String display(ArrayList<ArrayList<String>> board) {
String output = "";
for(ArrayList<String> list : board) {
for(String s:list){
output += s ;
}
output += "\n";
}
return output;
}
添加回答
舉報