premetto che conosco Java da pochi mesi...
Il mio problema è il seguente: vorrei creare un array di 8 elementi int tutti diversi tra loro con un range da 1 a max.
Il codice che ho scritto è il seguente:
- Codice: Seleziona tutto
for(int i=0; i<8; i++){ // 8 numeri differenti
int error = 0;
int temp = 0;
do{ // controlla se già presente nell'array
temp = (int)(Math.random() * max) + 1;
for(int k=0; k<=i; k++){
if(result[k] == temp)
error = 1;
}
}
while(error == 1);
result[i] = temp;
System.out.println("Result: " + result[i]);
}
Ora, il codice di per se funziona, ma se la variabile max è troppo piccola si impianta tutto (o magari ci mette troppo tempo, mandando in crash il tutto)... Se metto max=100, ottengo come desiderato quanto segue:
- Codice: Seleziona tutto
Result: 15
Result: 43
Result: 12
Result: 59
Result: 10
Result: 7
Result: 71
Result: 73
Ora la domanda è la seguente... cooscete per caso un metodo per fare il tutto in maniera più semplice e veloce?
Grazie per le eventuali risposte
Sandro