Java 将行添加到Arraylist
在方法Java 将行添加到Arraylist,java,arraylist,Java,Arraylist,在方法addRow()中,我需要将行添加到2D Arraylist的末尾。例如,如果我创建了一个对象: Board<String> board = new Board<String>(1,4,0,4,"A"); //(int minRow, int maxRow, int minCol, int maxCol, T e) System.out.println(board); 但是当我调用board.addRow()(addRow()每次调用只添加一行)时,输出根本不
addRow()
中,我需要将行添加到2D Arraylist的末尾。例如,如果我创建了一个对象:
Board<String> board = new Board<String>(1,4,0,4,"A"); //(int minRow, int maxRow, int minCol, int maxCol, T e)
System.out.println(board);
但是当我调用board.addRow()
(addRow()
每次调用只添加一行)时,输出根本不会改变。
例如,如果我
board.addRow();
board.addRow();
输出应如下所示:
| 0| 1| 2| 3| 4|
+---+---+---+---+---+
1 | A| A| A| A| A|
+---+---+---+---+---+
2 | A| A| A| A| A|
+---+---+---+---+---+
3 | A| A| A| A| A|
+---+---+---+---+---+
4 | A| A| A| A| A|
+---+---+---+---+---+
5 | A| A| A| A| A|
+---+---+---+---+---+
6 | A| A| A| A| A|
+---+---+---+---+---+
但它只生成我以前的输出:
| 0| 1| 2| 3| 4|
+---+---+---+---+---+
1 | A| A| A| A| A|
+---+---+---+---+---+
2 | A| A| A| A| A|
+---+---+---+---+---+
3 | A| A| A| A| A|
+---+---+---+---+---+
4 | A| A| A| A| A|
+---+---+---+---+---+
smb能告诉我我做错了什么吗?提前谢谢
public Board(int minRow, int maxRow, int minCol, int maxCol, T fillElem){
this.minRow = minRow;
this.maxRow = maxRow;
this.minCol = minCol;
this.maxCol = maxCol;
if(fillElem == null){
throw new RuntimeException("Cannot set elements to null");
}
else{
this.element = fillElem;
}
问题是这样的:现在你正在添加的新行没有元素,你正在添加一个空行,所以你没有什么可打印的,这就是为什么你一直看到相同的输出,我在创建板时重用了一些代码,以便向新行添加元素
public void addRowBottom(){
int origRow = maxRow - minRow;
int col = maxCol - minCol;
ArrayList<T> rowLine = new ArrayList<T>();
myBoard.add(origRow + 1, rowLine);
for(int j = 0; j <= col; j++){
rowLine.add(j, this.element);
}
}
public void addRowBottom(){
int-origRow=maxRow-minRow;
int col=maxCol-minCol;
ArrayList行线=新建ArrayList();
添加(origRow+1,行线);
对于(int j=0;j plz copy add()方法also@RamanShrivastava,你说的复制添加()是什么意思?想看看代码的添加()方法的板类添加()是ArrayList@RamanshRivastava的内置方法为什么你需要origRow=maxRow-minRow;myBoard.add(origRow+1,row);
。为什么不只是myBoard.add(row)
work?List.add()附加在最后一行?你也能发布数组显示方法吗?非常感谢!@JavierMoreno
public void addRowBottom(){
int origRow = maxRow - minRow;
int col = maxCol - minCol;
ArrayList<T> rowLine = new ArrayList<T>();
myBoard.add(origRow + 1, rowLine);
for(int j = 0; j <= col; j++){
rowLine.add(j, this.element);
}
}
public void addRowBottom(){
int origRow = maxRow - minRow;
int col = maxCol - minCol;
ArrayList<T> rowLine = new ArrayList<T>();
maxRow = maxRow + 1; //here you are updating the maxNumber of rows
myBoard.add(origRow + 1, rowLine);
for(int j = 0; j <= col; j++){
rowLine.add(j, this.element);
}
}