java如何初始化自定义迭代器?
我试图制作的程序包括创建一个名为Matrix
的类,该类使用两个自定义迭代器rowColumIterator
和columRowIterator
进行迭代。问题是,在Matrix
类中初始化迭代器时,会发生以下错误:
Cannot resolve method 'iterator()'
我不知道问题是在如何创建迭代器还是在Matrix类中
迭代器代码是:
public class rowColumnIterator<T> implements Iterator<T> {
private T[][] dataset;
private int rowIndex;
private int columnIndex;
public rowColumnIterator(T[][] dataset) {
this.dataset = dataset;
}
@Override
public boolean hasNext() {
if (rowIndex >= dataset.length)
return false;
if (columnIndex >= dataset[rowIndex].length &&
(rowIndex >= dataset.length || rowIndex == dataset.length - 1))
return false;
return true;
}
@Override
public T next() {
if (!hasNext())
throw new NoSuchElementException();
if (columnIndex >= dataset[rowIndex].length) {
rowIndex++;
columnIndex = 0;
}
return dataset[rowIndex][columnIndex++];
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
在matrix类中,我在构造函数中有:
this.matrix = new int[rows][columns];
rowColumnIterator<Integer> iterator = this.matrix.iterator();
如果你能告诉我我做错了什么,我将不胜感激
# 1 楼答案
必须用迭代器的构造函数实例化迭代器: