me he dado cuenta de que la matriz int subyacente está cambiándose dada la forma en la lista se está creando:matriz java barajar
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Shuffling {
static Integer[] intArr = {1, 2, 3, 4, 5};
static Random random = new Random(7);
public static void main(String[] args) {
List<Integer> intList = new ArrayList<Integer>(Arrays.asList(intArr));
Collections.shuffle(intList, random);
System.out.println("List after shuffling: " + intList);
System.out.println("intArr: " + Arrays.toString(intArr));
//OUTPUT:
//List after shuffling: [5, 4, 1, 3, 2]
//intArr: [1, 2, 3, 4, 5]
List<Integer> intList2 = Arrays.asList(intArr);
Collections.shuffle(intList2, random);
System.out.println("List2 after shuffling: " + intList2);
System.out.println("intArr: " + Arrays.toString(intArr));
//OUTPUT:
//List2 after shuffling: [5, 3, 4, 2, 1]
//intArr: [5, 3, 4, 2, 1]
}
}
¿Por qué está sucediendo?
('Collections.shuffle (Arrays.asList (.));' Se menciona en los Rompecabezas de Java de Bloch & Gafter. No en línea de forma gratuita, pero la salida original de la pregunta está aquí: http: //blogs.sun .com/mary/entry/puzzler_solved_winner_s_identified) –
* La prueba de Tom Hawtin también es correcta [...]. La solución de Tom, sin embargo, rocas *. Bonito, se quita el sombrero. :-) –