我正在尝试使用从 Java 中的一个对象类初始化的不同对象自动填充二维对象数组。每次我打印出数组中每个索引的值时,我总是为每个索引值得到相同的值。每次我想在循环中将对象添加到数组索引时,有没有一种方法可以用新值初始化对象?
这是我的带有构造函数的板类
public class Board {
private int rows;
private int columns;
private int matchSize;
private Tile[][] boardArray;
private int[] matchArray;
Tile tile = new Tile();
Board(){
rows = 10;
columns = 10;
boardArray = new Tile[rows][columns];
matchArray = new int[15];
}
这里是用 Tile 对象填充数组的函数
//creates a new board until it can be used
public Tile[][] createBoard() {
for(int i = 0; i < rows; i++) {
for(int j = 0; j < columns; j++) {
boardArray[i][j] = new Tile(i, j);
}
}
return boardArray;
}
好吧,如果您的 Tile 对象类正常且像下面的工作代码一样简单,那么我根本看不到任何问题。结论,你的 Tile 类确实有一些偏差。
package game;
public class ApplicationRunner {
public static void main(String[] args) {
Board board = new Board();
Tile[][] createdBoard = board.createBoard();
System.out.println(board);
}
}
class Tile {
public int i;
public int j;
Tile() {}
Tile(int i, int j) {
this.i = i;
this.j = j;
}
public String toString() {
return "i:" + this.i + "j:" + this.j;
}
}
class Board {
private int rows;
private int columns;
private int matchSize;
private Tile[][] boardArray;
private int[] matchArray;
Tile tile = new Tile();
Board() {
rows = 10;
columns = 10;
boardArray = new Tile[rows][columns];
matchArray = new int[15];
}
public void createBoard() {
for(int i = 0; i < rows; i++) {
for(int j = 0; j < columns; j++)
boardArray[i][j] = new Tile(i, j);
}
return boardArray;
}
public String toString() {
StringBuilder sb = new StringBuilder();
for(var row : boardArray) {
for (Tile tile : row)
sb.append(tile);
sb.append("\n");
}
return sb.toString();
}
}
//board.toString() printed:
//i:0j:0i:0j:1i:0j:2i:0j:3i:0j:4i:0j:5i:0j:6i:0j:7i:0j:8i:0j:9
//i:1j:0i:1j:1i:1j:2i:1j:3i:1j:4i:1j:5i:1j:6i:1j:7i:1j:8i:1j:9
//i:2j:0i:2j:1i:2j:2i:2j:3i:2j:4i:2j:5i:2j:6i:2j:7i:2j:8i:2j:9
//i:3j:0i:3j:1i:3j:2i:3j:3i:3j:4i:3j:5i:3j:6i:3j:7i:3j:8i:3j:9
//i:4j:0i:4j:1i:4j:2i:4j:3i:4j:4i:4j:5i:4j:6i:4j:7i:4j:8i:4j:9
//i:5j:0i:5j:1i:5j:2i:5j:3i:5j:4i:5j:5i:5j:6i:5j:7i:5j:8i:5j:9
//i:6j:0i:6j:1i:6j:2i:6j:3i:6j:4i:6j:5i:6j:6i:6j:7i:6j:8i:6j:9
//i:7j:0i:7j:1i:7j:2i:7j:3i:7j:4i:7j:5i:7j:6i:7j:7i:7j:8i:7j:9
//i:8j:0i:8j:1i:8j:2i:8j:3i:8j:4i:8j:5i:8j:6i:8j:7i:8j:8i:8j:9
//i:9j:0i:9j:1i:9j:2i:9j:3i:9j:4i:9j:5i:9j:6i:9j:7i:9j:8i:9j:9