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

标签 java matrix arraylist collections iterator

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

相关文章:

java - 除了 Array/ArrayList 之外,还有其他方法可以保存矩阵的元素吗

java - 相同的 ArrayList 但不同的对象顺序

java - 使用java反射在循环中调用编号的函数名称

单击按钮时的 JavaFX 警告框

ruby - 如何在 Ruby 中将数字数组转换为矩阵

java - 将唯一的对象实例添加到 ArrayList 中

java - 德州扑克识别一对

java - 调整已完成事件的大小?

java - 如何向 JTabbedPane 添加滚动条。基本上我有一个管理面板,它作为 TAB(JTabbedPane) 进一步附加在框架上

r - 将函数列表应用于矩阵并返回矩阵作为 R 中的结果