

ArrayListに含まれる数の中で、パラメーターのXに等しい一番最後の数字を除くプログラムを書き上げたのですがうまくいきません。  
例）Listが<2,4,1,4,5>,X=4だとすると、List<2,4,1,5>にする。

[code]

    public static void removeLastOccurrence(int x, ArrayList<Integer> list) {
                    int size = list.size();
                    int OccurenceIndex=-1;
                    for(int i = size-1; i>=0; i--){
                      if(list.get(i)==x){
                          OccurencePostion = i;
                      }
                    }
                    for(int i = OccurenceIndex; i<size; i++){
                      list.set(i, list.get(i+1));
                    }
                    list.remove(size+1);
                  }
    
    
[/code]


CC BY-SA 4.0
2020-01-19T19:50:49.490
62367
2020-01-19T23:04:47.193
36172
question
java
Java ArrayListについて

[code]

    int index = list.lastIndexOf(x)
    if (index >= 0)
        list.remove(index);
    
[/code]

でいいのでは。`remove(int)`はリストの途中を指定すると後続の要素をずらしてくれます。

(`lastIndexOf()`が使えないなど制約がある場合は質問を編集して追記してください)


CC BY-SA 4.0
2020-01-19T22:15:38.103
62368
2020-01-19T23:04:47.193
2020-01-19T23:04:47.193
3475
3475
62367
answer