gpt4 book ai didi

java - 如何实现跳转迭代器

转载 作者:行者123 更新时间:2023-12-01 11:58:28 24 4
gpt4 key购买 nike

实现跳转迭代器的next()和hasNext(),构造函数通过另一个迭代器传递。 next() 函数将返回 iterator.next().next()

我实现了下面的代码,它看起来一点也不优雅。对于列表 {1, 9, 8, 7, 8, 2, 5},它只会输出 9, 7, 2。有什么线索可以更好地做到这一点吗?

基本上,这个跳转迭代器尝试以一个距离迭代每个元素,例如,对于 1,2,3,4,5,它将返回 1,3,5

public class JumpIterator implements Iterator<Integer> {
private Iterator<Integer> it;

public JumpIterator(List<Integer> list){
it = list.iterator();
}

@Override
public boolean hasNext() {
if(!it.hasNext()){
return false;
}else{
it.next();
return it.hasNext();
}
}

@Override
public Integer next() {
return it.next();
}
}

最佳答案

在我看来,你的问题出在函数“hasNext”

为什么要覆盖它?您希望获得什么行为?

当 it.hasNext() 返回 true 时,您会消耗一个不应该消耗的值,因为那里使用了 it.next() 。

关于java - 如何实现跳转迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174339/

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