当我尝试打印2D ArrayList
,输出看起来是这样的:而不是打印二维数组列表
A B CD E FG H I
:
A B C
D E F
G H I
在构造函数中public DenseBoard(T[][] x, T fillElem)
,我复制2D array
的元素进入2D ArrayList
。然后,在toString()
方法,我循环throught二维ArrayList
并输出结果的元素(但我不能得到如我上述所希望的结果)
类仪
public class Tester {
public static void main(String[] args){
String[][] myString = {{"A B C"}, {"D E F"}, {"G H I"}};
DenseBoard<String> temp1 = new DenseBoard<String>(myString, "a");
System.out.println(temp1);
}
}
类DenseBoard
import java.util.*;
public class DenseBoard <T> {
private T element;
private ArrayList<ArrayList<T>> myBoard;
public DenseBoard(T[][] x, T fillElem){
this.myBoard = new ArrayList<ArrayList<T>>();
this.element = fillElem;
for(int i = 0; i < x.length; i++){
ArrayList<T> values = new ArrayList<T>();
for(int j = 0; j < x[i].length; j++){
values.add(x[i][j]);
}
myBoard.add(values);
}
}
public String toString(){
String result = "";
for(int i = 0; i < myBoard.size(); i++){
for(int j = 0; j < myBoard.get(i).size(); j++){
result += myBoard.get(i).get(j);
}
System.out.println();
}
return result;
}
}
能否请您解释一下为什么我不能用'的System.out.println()'用于打印新行代码? – Michael
@Michael:你为什么要有'toString'方法?不要输出到控制台,而是要**建立一个String **。 println对此没有任何贡献。 –
非常感谢! – Michael