昨晚我问了一个开放式的问题,我已经修改了一个问题,我面临一个更具体的问题。
我有一个名为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中的泛型元素是否被视为对象?非常感谢任何帮助。