Quero saber como pegar um número especifico de algarismos aleatorios de um range
Tipo assim:
import java.util.Random.sample
int ArrayAleatoria[];
sample(range(1, 50), 5)//pegar 5 algarismos aleatorios de 1 a 50
Você pode criar os métodos range
e sample
, veja o exemplo abaixo:
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.executar();
}
public void executar() {
int[] arrayAleatoria = sample(range(1, 50), 5); // pegar 5 algarismos aleatorios de 1 a 50
for (int numeroSorteado : arrayAleatoria) {
System.out.println(numeroSorteado);
}
}
private int[] range(int de, int ate) {
int[] numeros = new int[ate - de + 1];
for (int i = 0, numero = de; numero <= ate; i++, numero++) {
numeros[i] = numero;
}
return numeros;
}
private int[] sample(int[] numeros, int quantidade) {
int[] array = new int[quantidade];
Random random = new Random();
List<Integer> lista = Arrays.stream(numeros).boxed().collect(Collectors.toList());
for (int i = 0; i < quantidade; i++) {
array[i] = lista.remove(random.nextInt(lista.size()));
}
return array;
}
}