gpt4 book ai didi

java - 将 for-each 循环与返回迭代器的函数结合使用

转载 作者:行者123 更新时间:2023-12-01 18:43:37 25 4
gpt4 key购买 nike

如何在 Java 中使用 foreach 循环和返回迭代器的函数?例如,我想对具有以下签名的函数使用 for-each 循环:

public Iterator<Integer> intIterator();

是否可以或者我必须使用常规的 for 循环?

最佳答案

不幸的是,Java 的 for-each 被定义为需要 Iterable,而 Iterator 不是 Iterable。比如说,如果您想为树提供 3 种迭代器或为数据结构提供前向和后向迭代器,这可能会很痛苦。

最简单的方法是使用常规 for 循环,但如果需要,您可以编写一个包装类,如下所示:

public class IteratorWrapper<E> implements Iterable<E> {
private Iterator<E> iterator;

public IteratorWrapper(Iterator<E> iterator) {
this.iterator = iterator;
}

public Iterator<E> iterator() {
return iterator;
}

// Static import the following method for less typing at the
// call sites.
public static <E> IteratorWrapper<E> wrapIter(Iterator<E> iterator) {
return new IteratorWrapper<E>(iterator);
}
}

关于java - 将 for-each 循环与返回迭代器的函数结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886510/

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