En este ejemplo sobre rotar un array lo que pretendemos hacer con el siguiente código es rotar los elementos dentro de un array con Java. Es decir, pasar cada elemento a su posición anterior y el primer elemento a la última posición. Es decir, si tenemos un array de enteros…
int[] numeros = {1,2,3,4,5};
Conseguir que salgan las secuencias…
{1,2,3,4,5}
{2,3,4,5,1}
{3,4,5,1,2}
{4,5,1,2,3}
{5,1,2,3,4}
Como hemos comentado, rotar un array significa el mover un elemento a su posición anterior. Esto lo podemos hacer con un bucle for:
for(int x= 0; x<numeros.length-1; x++) numeros[x] = numeros[x+1];
Apreciar que solo se mueve hasta el tamaño-1. Para no caer en una excepción ArrayIndexOutOfBoundsException. Y es que la última posición de array se la asignaremos al primero. Para ello hay que tener en cuenta dos acciones.
- Guardarnos el primer elemento antes de entrar al bucle. Ya que en la primera iteración lo vamos a machacar
- Asignar el primer elemento a la última posición, una vez que hayamos salido del bucle
El código completo sería el siguiente:
int primero = numeros[0]; int x; for(x= 0; x<numeros.length-1; x++) numeros[x] = numeros[x+1]; numeros[x]= primero;
Encapsulamos todos esto en un método…
public static int[] rotar(int[] numeros){
int primero = numeros[0];
int x;
for(x= 0; x<numeros.length-1; x++)
numeros[x] = numeros[x+1];
numeros[x]= primero;
return numeros;
}
Y ahora utilizamos un bucle que llame al método rotar() para obtener todas las combinaciones posibles:
for (int x=0;x<numeros.length;x++) {
// Imprimir el array
rotar(numeros);
}
Aunque he utilizado un array de números enteros, este código, modificándolo un poco se puede utilizar para cualquier otro tipo de datos para poder rotar un array.

