Java, Shifting Elements in an Array Java, Shifting Elements in an Array arrays arrays

Java, Shifting Elements in an Array


Logically it does not work and you should reverse your loop:

for (int i = position-1; i >= 0; i--) {                    array[i+1] = array[i];}

Alternatively you can use

System.arraycopy(array, 0, array, 1, position);


Assuming your array is {10,20,30,40,50,60,70,80,90,100}

What your loop does is:

Iteration 1: array[1] = array[0]; {10,10,30,40,50,60,70,80,90,100}

Iteration 2: array[2] = array[1]; {10,10,10,40,50,60,70,80,90,100}

What you should be doing is

Object temp = pool[position];for (int i = (position - 1); i >= 0; i--) {                    array[i+1] = array[i];}array[0] = temp;


You can just use Collections.rotate(List<?> list, int distance)

Use Arrays.asList(array) to convert to List

more info at: https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#rotate(java.util.List,%20int)