Qualcuno potrebbe dirmi come posso prelevare più numeri casuali diversi da un array in una volta? Ad esempio, c'è un array int lungo. Voglio scegliere 7 numeri da esso. Tutti i numeri non devono essere uguali e ordinarli per aumentare la sequenza.Java: selezionare diversi numeri casuali dall'array in una volta
Random random = new Random();
int a = mixColor[random.nextInt(mixColor.length)];
int b = mixCoor[random.nextInt(mixCoor.length)];
int c = mixCoor[random.nextInt(mixCoor.length)];
int d = mixCoor[random.nextInt(mixCoor.length)];
int e = mixCoor[random.nextInt(mixCoor.length)];
while(b!=c && c!=d && b!=d) {
b = mixCoor[random.nextInt(mixCoor.length)];
c = mixCoor[random.nextInt(mixCoor.length)];
d = mixCoor[random.nextInt(mixCoor.length)];
}
mixColor[]
e mixCoor[]
sono lunghi array di int. Posso fare in questo modo, ma se voglio scegliere più numeri questo sarà davvero complicato. E ho bisogno di ordinare anche loro. Qualcuno ha delle buone idee?
Dipende da quanto è grande la tua collezione, puoi usare shuffle e poi raccogliere i primi elementi come richiesto. Probabilmente vuoi fare un punto di riferimento - la tua collezione potrebbe essere abbastanza grande e lo shuffle potrebbe essere lento, il che annulla la semplicità che ne deriva. Ecco le specifiche per [shuffle] (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#shuffle%28java.util.List%29) –
Una soluzione migliore il modo sarebbe usare un numero di 'Random' e vedere se l'elenco selezionato ha già il numero nell'indice generato. Quindi ordina usando 'Collezioni' – Jon