El siguiente algoritmo desplaza una posición los elementos de una lista.
Código (ListaRotar.java):
package listarotar;
import java.util.List;
import java.util.Arrays;
import java.util.Collections;
public class ListaRotar {
public static void main(String[] args) {
List<Integer> cuadrante = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
for (int i = 0; i < 9; i++) {
Collections.rotate(cuadrante, 1);
System.out.println(cuadrante);
}
}
}
Resultado:
run:
[9, 1, 2, 3, 4, 5, 6, 7, 8]
[8, 9, 1, 2, 3, 4, 5, 6, 7]
[7, 8, 9, 1, 2, 3, 4, 5, 6]
[6, 7, 8, 9, 1, 2, 3, 4, 5]
[5, 6, 7, 8, 9, 1, 2, 3, 4]
[4, 5, 6, 7, 8, 9, 1, 2, 3]
[3, 4, 5, 6, 7, 8, 9, 1, 2]
[2, 3, 4, 5, 6, 7, 8, 9, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
BUILD SUCCESSFUL (total time: 0 seconds)
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Archivo del blog
jueves, 27 de octubre de 2022
Rotar elementos de una lista. Uso de "Collections.rotate".
domingo, 23 de octubre de 2022
Cola circular. Uso de Queue.
Una cola circular es una estructura de datos que almacena elementos en una lista (en este caso LinkedList) y que permite acceder a los datos por uno de los dos extremos de la lista. Un elemento se inserta en la cola (parte final) y se suprime/elimina por la parte frontal.
Código (colas.java):
package colas;
import java.util.LinkedList;
import java.util.Queue;
public class Colas {
public static void main(String[] args) {
Queue<Integer> cola = new LinkedList<>();
llenar(cola);
desplazar(cola);
}
//llenar cola
private static void llenar(Queue<Integer> cola) {
for (int i = 1; i < 10; i++) {
cola.add(i);
}
}
//correr una posición <-
private static void desplazar(Queue<Integer> cola) {
mostrar(cola);
for (int i = 1; i < 9; i++) {
cola.add(cola.poll());
mostrar(cola);
}
}
private static void mostrar(Queue<Integer> cola) {
System.out.println(cola);
}
}
Resultado:
run:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9, 1]
[3, 4, 5, 6, 7, 8, 9, 1, 2]
[4, 5, 6, 7, 8, 9, 1, 2, 3]
[5, 6, 7, 8, 9, 1, 2, 3, 4]
[6, 7, 8, 9, 1, 2, 3, 4, 5]
[7, 8, 9, 1, 2, 3, 4, 5, 6]
[8, 9, 1, 2, 3, 4, 5, 6, 7]
[9, 1, 2, 3, 4, 5, 6, 7, 8]
BUILD SUCCESSFUL (total time: 0 seconds)
domingo, 16 de octubre de 2022
Mezclar elementos de una lista. Uso de "Collections.shuffle".
package gensudoku;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class GenSudoku {
public static void main(String[] args) {
List<Integer> valores = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
System.out.println("valores no mezclados: " + valores);
Collections.shuffle(valores);
System.out.println("valores si mezclados: " + valores);
}
}
Resultado:
valores no mezclados: [1, 2, 3, 4, 5, 6, 7, 8, 9]
valores si mezclados: [3, 9, 2, 8, 4, 5, 7, 1, 6]