gpt4 book ai didi

java - Java 二维数组的迭代器和可迭代对象

转载 作者:行者123 更新时间:2023-12-01 10:52:35 24 4
gpt4 key购买 nike

我为一个数组创建了两个迭代器:第一个迭代器按行运行数组 (iteratorRow),然后按列运行,第二个迭代器首先按列运行,然后按行运行 (iteratorColumn)。

我有另一个类 Matrix,在其中我必须创建两个方法来执行迭代(iteratorRowColumn 和 iteratorColumnRow),它们返回已创建的迭代器以便其他类可以访问。

数组必须实现 Iterable 接口(interface),并且可以通过调用 iterator() 方法来配置(使用 boolean 值)应该对两个迭代器中的哪一个进行退款。

我怎样才能做到这一点?我必须做一些 setter/getter 方法吗?像这样的吗?

public Iterator iteratorRowColumn () {
return new iteratorRow;
}

最佳答案

我认为作业的最后一句很好地说明了一个问题。不知道哪一部分还不清楚,所以让我详细解释一下:

The array must implement the Iterable interface

public class Matrix<T> implements Iterable<T>

may be configured (using a Boolean)

public Matrix(boolean defaultRowColumnIterator) {
this.defaultRowColumnIterator = defaultRowColumnIterator;
}

which of the two iterators it shall be returning by calling iterator() method

@Override
public Iterator<T> iterator() {
return defaultRowColumnIterator ? iteratorRowColumn() : iteratorColumnRow();
}

这是一个可编译的示例:

public class Matrix<T> implements Iterable<T> {

T[][] array;
boolean defaultRowColumnIterator;

public Matrix(boolean defaultRowColumnIterator) {
this.defaultRowColumnIterator = defaultRowColumnIterator;
}

// other methods and constructors

public Iterator<T> iteratorRowColumn() {
return null; // your current implementation
}

public Iterator<T> iteratorColumnRow() {
return null; // your current implementation
}

@Override
public Iterator<T> iterator() {
return defaultRowColumnIterator ? iteratorRowColumn() : iteratorColumnRow();
}

}

关于java - Java 二维数组的迭代器和可迭代对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757194/

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