Preciso de uma ajuda, criei esse código porém ele está dando erro, preciso de ajuda para poder Inverter um ArrayList sem a utilização do Collections.reverse(lista).
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 4, Size: 3 (esse é o erro)
package trabalhocomarraylist;
import java.util.ArrayList;
public class TrabalhoComArraylist {
    public static void main(String[] args) {
        
        ArrayList<String> nomes = new ArrayList<>();
        nomes.add("Gustavo");
        nomes.add("Henrique");
        nomes.add("Scarpim");
        
        ArrayList<String> newNomes = nomes;
        ArrayList<String> result = new ArrayList<>();
        System.out.println(newNomes);
        
        inverter(nomes);
        
    }
        public static void inverter(ArrayList arr){
            
        ArrayList<String> result = new ArrayList<>();
            for(int i = arr.size() + 1; i >= 0; i--){
              result.add((String) arr.get(i));
            }
        }
    
} , era só um sinal de menos kkkk e obrigado pela explicação sobre o erro index me ajudou muito.
 , era só um sinal de menos kkkk e obrigado pela explicação sobre o erro index me ajudou muito.