gpt4 book ai didi

java - Java中迭代链表,同时直接在next()方法中过滤?

转载 作者:行者123 更新时间:2023-12-01 07:51:24 25 4
gpt4 key购买 nike

我的部分 CS 作业遇到了一些问题。我需要用Java编写一个链表,然后只用迭代器迭代奇数。本质上,forEach 循环必须仅迭代奇数。

到目前为止,我的 LinkedList 类中只有这个:

public class Iterator implements java.util.Iterator<Integer> {

private Node nextNode;

public Iterator(){
nextNode = head_;
}

@Override
public boolean hasNext() {
return (nextNode != null);// && (nextNode.data_ % 2 != 0);
}

@Override
public Integer next() {
if (!hasNext()) throw new NoSuchElementException();
Integer data = nextNode.data_;
nextNode = nextNode.next_;
return data;
}

public void remove(){
throw new UnsupportedOperationException();
}
}

public Iterator iterator() {
return new Iterator();
}

如果我取消注释 && (nextNode.data_ % 2 != 0);,则仅打印第一个数字(恰好是不均匀的)。我也尝试在 next() 方法中实现这一点,但没有成功。

请告诉我如何进一步尝试。

//后来编辑:我没有提到我要过滤的链表由随机数组成,并且没有排序。

最佳答案

您的过滤器应位于 .next 方法内,而不是 .hasNext。这是简单的逻辑:迭代整个列表,并且 hasNext 必须始终返回 true,除非当前元素是最后一个元素。

关于java - Java中迭代链表,同时直接在next()方法中过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36813113/

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