gpt4 book ai didi

java - ArrayList 矩阵的自定义集合可迭代

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:34 25 4
gpt4 key购买 nike

我有一个名为 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]

任何人都可以阐明我的迭代器的不同之处吗?

最佳答案

如果我理解正确你的问题是打印你的矩阵。要克服它,您可以尝试覆盖 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]]

关于java - ArrayList 矩阵的自定义集合可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com