-1

これは私のコードです:

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)

なぜこのエラーが発生するのか本当にわかりません。どんな提案でも大歓迎です。

4

2 に答える 2

0

next() を呼び出すたびに、同じ要素を取得するのではなく、イテレータの次の要素にトラバースします。この値を変数に保存して使用する必要があります。

于 2015-05-27T09:48:45.227 に答える