gpt4 book ai didi

java - 迭代器困惑

转载 作者:行者123 更新时间:2023-12-02 00:37:52 24 4
gpt4 key购买 nike

我在整个迭代器概念上遇到了一些麻烦,对于我的一个测验中的一个问题,老实说我无法理解发生了什么。

public static void main(String[] args)
{
Deque<String> SQ1 = new ArrayDeque<String>();

SQ1.add("Give");
SQ1.add("Me");
SQ1.add("The");
SQ1.add("Best");
SQ1.add("Of");
SQ1.add("Both");
SQ1.add("Worlds");
Iterator<String> It = SQ1.iterator();

while(It.hasNext())
{
if(It.next().equals("Give"))
System.out.print(It.next());
}
}

这是代码,问题是输出是什么。正确答案是"Me"当我以为是"Give"时。我不明白整个运行过程是怎样的。

我的理解是这样的:它确实有一个 next 。如果是next等于 "Give" ,它会打印出next值(value)。在这种情况下,该值应该是“Give”,不是吗?

有人可以帮我理解这一点吗?

最佳答案

if 语句调用 It.next() 检查值,print 语句再次调用 It.next() ,而不是打印您刚刚检查的值。

因此,您看到的始终是紧接在“Give”之后的元素。

关于java - 迭代器困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274217/

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