La lista es una colección ordenada de objetos en los que se pueden almacenar valores duplicados. Dado que List conserva el orden de inserción, permite el acceso posicional y la inserción de elementos. En este artículo vamos a ver cómo rotar elementos de una lista. Consideremos la siguiente lista.
Hay dos tipos de rotaciones en una lista. Son la rotación a la derecha y la rotación a la izquierda. Después de cuatro rotaciones a la derecha, la lista se vuelve como se muestra a continuación:
Método 1: (sin utilizar métodos integrados)
Trabajando para la rotación derecha
- Primero almacene el último elemento de la lista en una variable temporal.
- Mueva los elementos en una posición hacia la derecha.
- Ahora cambie el valor del primer elemento de la lista con valor en una variable temporal.
- Actualice el valor de una variable temporal al nuevo último elemento.
- Repita los pasos anteriores que requieren un número de rotaciones.
Ejemplo:
Java
// Java Program to Rotate Elements of the List import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { // creating ArrayList List<Integer> my_list = new ArrayList<>(); my_list.add(10); my_list.add(20); my_list.add(30); my_list.add(40); my_list.add(50); my_list.add(60); my_list.add(70); // Printing list before rotation System.out.println( "List Before Rotation : " + Arrays.toString(my_list.toArray())); // Loop according to the number of rotations for (int i = 0; i < 4; i++) { // storing the last element in the list int temp = my_list.get(6); // traverse the list and move elements to right for (int j = 6; j > 0; j--) { my_list.set(j, my_list.get(j - 1)); } my_list.set(0, temp); } // Printing list after rotation System.out.println( "List After Rotation : " + Arrays.toString(my_list.toArray())); } }
List Before Rotation : [10, 20, 30, 40, 50, 60, 70] List After Rotation : [40, 50, 60, 70, 10, 20, 30]
Después de cuatro rotaciones a la izquierda, la lista se vuelve como se muestra a continuación:
Trabajando para rotación a la izquierda
- Primero almacene el primer elemento de la lista en una variable temporal.
- Mueva los elementos en una posición hacia la izquierda.
- Ahora cambie el valor del último elemento de la lista con el valor en la variable temporal.
- Actualice el valor de una variable temporal al nuevo primer elemento.
- Repita los pasos anteriores que requieren un número de rotaciones.
Ejemplo
Java
// Java Program to Rotate Elements of the List import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { // creating array list List<Integer> my_list = new ArrayList<>(); my_list.add(10); my_list.add(20); my_list.add(30); my_list.add(40); my_list.add(50); my_list.add(60); my_list.add(70); // Printing list before rotation System.out.println( "List Before Rotation : " + Arrays.toString(my_list.toArray())); // Loop according to the number of rotations for (int i = 0; i < 4; i++) { // storing the first element in the list int temp = my_list.get(0); // traverse the list and move elements to left for (int j = 0; j < 6; j++) { my_list.set(j, my_list.get(j + 1)); } my_list.set(6, temp); } // Printing list after rotation System.out.println( "List After Rotation : " + Arrays.toString(my_list.toArray())); } }
List Before Rotation : [10, 20, 30, 40, 50, 60, 70] List After Rotation : [50, 60, 70, 10, 20, 30, 40]
Método 2: (Rotación usando el método Collections.rotate(list, distance) )
Tanto las rotaciones a la izquierda como a la derecha se pueden realizar directamente utilizando las colecciones de Java.
Sintaxis
Collections.rotate(list_name, distancia)
Parámetros:
- list_name: nombre de la lista.
- distancia: La distancia es el número de elementos que tenemos que rotar.
Devoluciones: Devuelve una lista rotada.
Nota: La distancia negativa da rotación a la izquierda mientras que la positiva da rotación a la derecha.
Ejemplo: uso de la distancia positiva para obtener la rotación correcta.
Java
// Java Program to Rotate Elements of the List import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { // creating array list List<Integer> my_list = new ArrayList<>(); my_list.add(10); my_list.add(20); my_list.add(30); my_list.add(40); my_list.add(50); my_list.add(60); my_list.add(70); // Printing list before rotation System.out.println( "List Before Rotation : " + Arrays.toString(my_list.toArray())); // Rotating the list at distance 4 Collections.rotate(my_list, 4); // Printing list after rotation System.out.println( "List After Rotation : " + Arrays.toString(my_list.toArray())); } }
List Before Rotation : [10, 20, 30, 40, 50, 60, 70] List After Rotation : [40, 50, 60, 70, 10, 20, 30]
Ejemplo: usar la distancia negativa para obtener la rotación a la izquierda.
Java
// Java Program to Rotate Elements of the List import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { // creating array list List<Integer> my_list = new ArrayList<>(); my_list.add(10); my_list.add(20); my_list.add(30); my_list.add(40); my_list.add(50); my_list.add(60); my_list.add(70); // Printing list before rotation System.out.println( "List Before Rotation : " + Arrays.toString(my_list.toArray())); // Rotating the list at distance -3 Collections.rotate(my_list, -4); // Printing list after rotation System.out.println( "List After Rotation : " + Arrays.toString(my_list.toArray())); } }
List Before Rotation : [10, 20, 30, 40, 50, 60, 70] List After Rotation : [50, 60, 70, 10, 20, 30, 40]
Publicación traducida automáticamente
Artículo escrito por uchiha1101 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA