-3
私のコードは、矛盾した結果を示しています。私がそれを実行すると、incoming.get(i).getSubmitionTime()
が奇数のときにif演算が実行されます。ArrayListからオブジェクトを削除した後に間違った結果が表示される
それは私のコードです:
public void decrementIncoming() {
for (int i = 0; i < incoming.size(); i++) {
incoming.get(i).setSubmitionTime(incoming.get(i).getSubmitionTime() - 1);
if (incoming.get(i).getSubmitionTime() == 0) {
Process p = incoming.get(i);
incoming.remove(i);
ready.add(p);
}
}
}
結果は
----- Time 6 -----
----- Running -----
1 : 5
----- Ready -----
3 : 6
5 : 6
7 : 8
----- Blocked -----
----- Incoming -----
2 : 6
4 : 6
6 : 8
8 : 8
である。しかし、それらのすべては、同じ時間に状態準備に来ています。 私は間違っていますか?
:しかし、よりよい解決策は、イテレータを使用している 'incoming.get(I).setSubmitionTime(incoming.get(I).getSubmitionTime() - 1) ; '? – Kon
完全なコードを投稿 – Jeyaprakash
@Konそれを 'if( - incoming [i] .submitionTime == 0){' – shmosel