Boa tarde, estou desenvolvendo um simulado para um banco de questões, onde eu carrego um .txt com 150 questões para uma determinada classe com enunciado e alternativas. As questões estão sendo carregas e geradas de forma aleatoria ( com o random) corretamente, o problema é que eu preciso garantir que elas não se repitam. Existe algum code/logica que pode ser implementado nesse caso? Ja tentei com uma variavel de disponibilidade e não funcionou.
// GERA QUESTOES ALEATORIAS
public Questoes gerarQuestao(){
int nquestoes;
questoes x = null;
Random random = new Random();
do{
nquestoes=random.nextInt(questoes.size());
x=questoes.get(nquestoes);
}while(!x.isDisp()==true);
return x;
}
Não sei se entendi direito, mas você quer um array com números aleatórios distintos? Se for:
import java.util.Arrays;
import java.util.Random;
class Main {
public static void main(String[] args) {
int n = 10, min = 0, max = 150;
// gera 10 numeros aleatórios distintos entre 0 (inclusivo) e 150 (exclusivo)
int[] aleatoriosDistintos = arrayComNAleatoriosDistintos(n, min, max);
System.out.println(Arrays.toString(aleatoriosDistintos));
}
public static int[] arrayComNAleatoriosDistintos(int n, int min, int max) {
return new Random().ints(min, max)
.distinct()
.limit(n)
.toArray();
}
}
Eu tenho um Array com 150 questões que eu consigo passar para o “programa” de forma aleatoria, preciso de um metodo para conferir que não seja gerado questões repetidas do array. Desculpe-me se não ficou compreensivel .
Então você já tem um array de objetos e quer garantir que não há questões repetidas, é isso?
Isso msm, o codigo que eu estou usando para gerar e pegar as questões é oq eu deixei la encima.