Rotacionar dados dentro de um array

Boa tarde galera, sou iniciante em Java e estou fazendo alguns exercícios, como esse por exemplo.

Escrever um algoritmo que rotacione um array em k posições.
Esse programa está dando erro, o que eu posso fazer para ajeitá-lo?
O que fiz até agora foi isso:

    System.out.print("Informe o tamanho do vetor: ");
    int n = sc.nextInt();
    
    int []vect = new int[n];
    
    for(int i=1; i<=n; i++){
        System.out.print("Diga o " +(i)+ "º número do vetor: ");
        vect[i] = sc.nextInt();
    }
    
    System.out.print("Quantas posições rotacionar? ");
    int k = sc.nextInt();
    
    for(int i=0; i<k; i++){
        vect[i] = vect[i+1];
    }
    
    System.out.println(Arrays.toString(vect));

Um vetor possui um número limite de posições. Quando você tenta acessar uma posição inexistente, vai ocorrer erro, certamente.
O erro, no caso, é por você tentar acessar a enésima posição, destacada acima.
Agora, pense num modo de fazer a rotação pular do último elemento do vetor para o primeiro.

1 curtida