Java ArrayListについて


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]



[code]

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

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

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

