I'm making a program that arranges an array by moving the largest value to the end but for some reason, the program isn't arranging the values menually. How can I fix that?
public static void main(String args[]) {
    ArrayList<Integer> list = new ArrayList<>(); 
    list.add(15); 
    list.add(78); 
    list.add(44); 
    list.add(99); 
    list.add(32);
    
    int num = 1;
    for(int i = 0; i<=list.size() -1;){
        if(list.get(i) > list.get(i+1)){
            list.add(list.get(i));
            list.remove(i);
            System.out.println(list);
        }
        else{
            i+=1;
            num+=1;
        }
    }
}
and this what I'm getting:
[15, 44, 99, 32, 78]
[15, 44, 32, 78, 99]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 5
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
    at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
    at java.base/java.util.Objects.checkIndex(Objects.java:372)
    at java.base/java.util.ArrayList.get(ArrayList.java:458)
    at MyClass.main(MyClass.java:10)
 
     
     
     
    