gpt4 book ai didi

java - 我怎样才能从迭代器中得到两个连续的值

转载 作者:行者123 更新时间:2023-11-30 06:37:30 25 4
gpt4 key购买 nike

这是我尝试获取 Iterator 的两个连续元素的代码。

public void Test(Iterator<Value> values) {
Iterator<Value> tr = values;
while (tr.hasNext()) {
v = tr.next();
x = v.index1;
// u = null;

if (tr.hasNext()) {
u = tr.next();
y = u.index1;
} else {
u = v;
y = u.index1;
}

System.out.println(x);
System.out.println(y);
}
}

但我仍然得到相同的 x 和 Y 值。

这有什么问题,我得到的两个变量 x 和 y 的值相同。

最佳答案

最终的问题是 while 语句。您的代码不会只从迭代器中获取前两个元素。相反,如果 Iterator 中有偶数个元素,它将获取最后两个。如果元素数量为奇数,则您将获得相同的 x 和 y 值。特别是最后一个元素。

更根本的是,您的代码的问题是 uvxy 是在外部声明的你的方法。我假设您这样做是因为您不知道如何返回多个值。如果需要返回多个值,返回一个元素数组,或者返回一个自定义的容器类。

这是一个示例,说明如何在数组中返回从给定迭代器中取出的两个元素:

public static Value[] nextTwo(Iterator<Value> values) {
return new Value[] {
(values.hasNext()?values.next():null),
(values.hasNext()?values.next():null)
};
}

请注意,如果迭代器中只剩下一个值,则返回数组的第二个元素将为 null。如果迭代器为空,则数组的两个元素都将为 null

关于java - 我怎样才能从迭代器中得到两个连续的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432872/

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