Ombra puoi fare cosi: dovrebbe funzionare
Codice PHP:
public class Main {
public Collection<Integer>numeri(){
List<Integer>numeri = new ArrayList<Integer>();
List<Integer>numeriDefinitivi = new ArrayList<Integer>();
for(int i = 1; i < 51; i++){
numeri.add(i);
}
boolean condizione = true;
while(condizione){
int indiceRandom = (int)(Math.random()*numeri.size());
if(numeri.get(indiceRandom)!= null ){
numeriDefinitivi.add(numeri.get(indiceRandom));
numeri.remove(numeri.get(indiceRandom));
}
if(numeri.size() < 1){
condizione = false;
break;
}
}
return numeriDefinitivi;
}
public static void main(String[] args) {
Main m = new Main();
List<Integer> n = (List<Integer>)m.numeri();
for(int i : n){
System.out.println("Numero: " +i);
}
}
}
In poche parole cosa ho fatto?
ho inserito da 0 a 51 numeri in una collection di interi, dopo di che mi sono fatto un ciclo while con una condizione vera quindi mi entra sempre li e dentro il ciclo while mi faccio tornare un numero casuale da 0 a 51. Trovato questo numero verifico se è presente nella collection che ho riempito in precedenza, se è presente lo aggiungo in una seconda collection di interi per poi eliminarla nella prima. Quando la prima collection non avrà alcun elemento, imposto la condizione del ciclo while a false