实现自定义集合的迭代器,ArrayList矩阵

时间:2018-03-29 05:04:39

标签: java arraylist collections iterator iterable

昨晚我问了一个开放式的问题,我已经修改了一个问题,我面临一个更具体的问题。

我有一个名为Matrix的自定义集合,它使用ArrayList为2d矩阵建模。

public class Matrix<E> implements Iterable {

    private ArrayList<ArrayList<E>> matrix; 
}

我已经实现了迭代器。

public Iterator iterator() {

    Iterator<ArrayList<E>> it = this.matrix.iterator();
    return it;  
}

要测试此迭代,我使用以下内容。

public static void main(String[] args) {
    Matrix<String> m = new Matrix<String>(2, 2);

    m.insert(0, 0, "a");
    m.insert(0, 1, "b");
    m.insert(1, 0, "c");
    m.insert(1, 1, "d");

    for (String element : m) {
        System.out.println(element);
    }

}

我的问题在于每个循环。编译器无法从对象m转换为String元素。这是因为它是迭代ArrayList对象而不是内部ArrayList中的元素?或者内部ArrayList中的泛型元素是否被视为对象?非常感谢任何帮助。

0 个答案:

没有答案