Artículos
Java

Rotar un array

21/Sep/2010

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.

  1. Guardarnos el primer elemento antes de entrar al bucle. Ya que en la primera iteración lo vamos a machacar
  2. 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.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
13 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios