Categorías
Real Methods

Método Java para mezclar una matriz

¿Cómo mezclar una matriz en Java?

Hay dos enfoques para mezclar una matriz int (aleatoriza el orden de los elementos en una matriz), uno es usar el método Collections.shuffle () y el otro es manipular los elementos de la matriz.

Método 1: mezclar elementos en una matriz

Esto es flexible y fácil de cambiar para adaptarse a su aplicación.

Entrada: una matriz int
Salida: matriz barajada (en orden aleatorio)

public static int[] RandomizeArray(int[] array){
		Random rgen = new Random();  // Random number generator			
 
		for (int i=0; i<array.length; i++) {
		    int randomPosition = rgen.nextInt(array.length);
		    int temp = array[i];
		    array[i] = array[randomPosition];
		    array[randomPosition] = temp;
		}
 
		return array;
	}

También puede definir un método cuya entrada sea un rango de la matriz como se muestra a continuación:

Entrada: rango de una matriz int
Salida: matriz mezclada aleatoriamente

Por ejemplo, dado a = 1 y b = 10, el método devuelve una matriz mezclada como {2 5 6 7 9 8 3 1 10 4}.

public static int[] RandomizeArray(int a, int b){
		Random rgen = new Random();  // Random number generator		
		int size = b-a+1;
		int[] array = new int[size];
 
		for(int i=0; i< size; i++){
			array[i] = a+i;
		}
 
		for (int i=0; i<array.length; i++) {
		    int randomPosition = rgen.nextInt(array.length);
		    int temp = array[i];
		    array[i] = array[randomPosition];
		    array[randomPosition] = temp;
		}
 
		for(int s: array)
			System.out.println(s);
 
		return array;
	}
  ¿Cómo utilizar el archivo de propiedades de Java?

Enfoque 2: método Java Collection.shuffle ()

// Create an array
Integer[] array = new Integer[]{1, 2, 3, 4};
 
//int[] array = new int[]{1, 2, 3, 4}; //does not work
 
// Shuffle the elements in the array
List<Integer> l = Arrays.asList(array);
System.out.println(l);
 
Collections.shuffle(l);
 
System.out.println(l);

El código anterior imprime una lista aleatoria de números enteros. Puede convertir a una matriz si se requiere una salida de matriz.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *