I defined a list class that wraps int[] like this.
class IntList extends AbstractList<Integer> {
private final int[] array;
public IntList(int[] array) { this.array = array; }
@Override public int size() { return array.length; }
@Override public Integer get(int i) { return array[i]; }
@Override public Integer set(int i, Integer e) { return array[i] = e; }
}
And I tried to reverse int[].
int[] array = {4, 2, 0, 1, 3};
List<Integer> list = new IntList(array);
System.out.println("list=" + list);
Collections.reverse(list);
System.out.println("reversed list=" + list);
System.out.println("reversed array=" + Arrays.toString(array));
The results are
list=[4, 2, 0, 1, 3]
reversed list=[4, 2, 0, 2, 4]
reversed array=[4, 2, 0, 2, 4]
What is the problem?