我有一个名为matrix的类,它创建了一个2d ArrayList矩阵。
public class Matrix<E> implements Iterable {
private ArrayList<ArrayList<E>> matrix;
}
它完全作为矩阵运行,但我需要一种方法来遍历每个内部ArrayList(行)。我的解决方案是:
public Iterator iterator() {
Iterator<ArrayList<E>> it = this.matrix.iterator();
return it;
}
它正在提交网站上自动测试。 矩阵填充后的预期回报是:
[[id, IP, Ec, c, g, lU][Jb, Ud, r, OG, an, V][ef, H, WT, Zn, D, Ml][LT, bU, j, W, Sa, Kd][q, S, h, Q, P, VJ]]
我从代码中得到的是:
[idIPEccglUJbUdrOGanVefHWTZnDMlLTbUjWSaKdqShQPVJ]
有没有人可以对我的迭代器采用不同的做法有所了解?
答案 0 :(得分:0)
如果我理解正确你的问题是打印你的矩阵。要克服它,您可以尝试覆盖Matrix类的toString()方法,如:
@Override //simply calling toString on the arrayList. edit this method for custom implementation
public String toString() {
return matrix.toString();
}
我设法使用以下代码获得您所需的结果:
public class App{
public static void main(String[] args) {
List<String> a = Arrays.asList("id", "IP", "Ec", "c", "g", "lU");
List<String> b = Arrays.asList("Jb", "Ud", "r","OG", "an", "V");
List<String> c = Arrays.asList("ef", "H", "WT", "Zn", "D","Ml");
List<String> d = Arrays.asList("LT", "bU", "j", "W", "Sa", "Kd");
List<String> e = Arrays.asList("q", "S", "h", "Q", "P", "VJ");
Matrix<String> m = new Matrix<String>();
m.matrix = new ArrayList<ArrayList<String>>((Collection<? extends ArrayList<String>>) Arrays.asList(a, b, c, d, e));
System.out.println(m.toString());
} }
class Matrix<E> implements Iterable<ArrayList<E>> {
public ArrayList<ArrayList<E>> matrix;
public Iterator<ArrayList<E>> iterator() {
Iterator<ArrayList<E>> it = this.matrix.iterator();
return it;
}
@Override
public String toString() {
return matrix.toString();
}
}
上述代码执行的结果:[[id,IP,Ec,c,g,lU],[Jb,Ud,r,OG,an,V],[ef,H,WT,Zn,D,Ml ],[LT,bU,j,W,Sa,Kd],[q,S,h,Q,P,VJ]]