NoSuchElementException 错误迭代器 anylogic
NoSuchElementException error iterator anylogic
这是我的代码:
Iterator<H> iter = ((Main) getOwner()).eH.iterator();
while (iter.hasNext()) {
if (iter.next().z.c > p_l) {
if (r) {
if (iter.next().R) {
if (iter.next().p <= 0.7 * s && iter.next().c_l >= p_l) {
if (s_h == null) {
s_h = iter.next();
} else {
if (iter.next().p <= s_h.price) {
s_h = iter.next();
}
}
}
}
}
}
}
但我收到此错误:
Error during model startup:
java.util.NoSuchElementException
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:839)
at d_w.P.I(P.java:681)
at d_w.P.checkIfI(P.java:649)
at d_w.Main.initModelStructure(Main.java:1072)
at d_w.Main.onStartup(Main.java:2775)
at d_w.Main.start(Main.java:2765)
at com.anylogic.engine.Engine.start(Unknown Source)
at com.anylogic.engine.ExperimentSimulation.r(Unknown Source)
at com.anylogic.engine.ExperimentSimulation.run(Unknown Source)
at d_w.Simulation.executeShapeControlAction(Simulation.java:111)
我真的不确定为什么会收到此错误任何建议都非常感谢提前感谢
调用 .next()
将检索下一个元素并推进迭代器。您有多个 .next()
调用而根本没有检查是否有下一个元素。
如果您想继续使用 .next()
最初返回的相同元素,则将第一个 .next()
替换为 H next = iter.next()
,然后访问 next
变量.
每次调用 next() 都不会得到相同的元素,而是遍历迭代器的下一个元素。您应该将此值保存到一个变量中并使用它。
这是我的代码:
Iterator<H> iter = ((Main) getOwner()).eH.iterator();
while (iter.hasNext()) {
if (iter.next().z.c > p_l) {
if (r) {
if (iter.next().R) {
if (iter.next().p <= 0.7 * s && iter.next().c_l >= p_l) {
if (s_h == null) {
s_h = iter.next();
} else {
if (iter.next().p <= s_h.price) {
s_h = iter.next();
}
}
}
}
}
}
}
但我收到此错误:
Error during model startup:
java.util.NoSuchElementException
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:839)
at d_w.P.I(P.java:681)
at d_w.P.checkIfI(P.java:649)
at d_w.Main.initModelStructure(Main.java:1072)
at d_w.Main.onStartup(Main.java:2775)
at d_w.Main.start(Main.java:2765)
at com.anylogic.engine.Engine.start(Unknown Source)
at com.anylogic.engine.ExperimentSimulation.r(Unknown Source)
at com.anylogic.engine.ExperimentSimulation.run(Unknown Source)
at d_w.Simulation.executeShapeControlAction(Simulation.java:111)
我真的不确定为什么会收到此错误任何建议都非常感谢提前感谢
调用 .next()
将检索下一个元素并推进迭代器。您有多个 .next()
调用而根本没有检查是否有下一个元素。
如果您想继续使用 .next()
最初返回的相同元素,则将第一个 .next()
替换为 H next = iter.next()
,然后访问 next
变量.
每次调用 next() 都不会得到相同的元素,而是遍历迭代器的下一个元素。您应该将此值保存到一个变量中并使用它。