Javafree
Página Inicial do Fórum > Java Básico

Sorteio de String sem repetição



Criar novo tópico   Responder tópico


  1. elisilvaac
    Posts:1


    Comment Arrow

    Publicado em: 23/04/2016 19:19:49

    Boa tarde pessoal, tenho um código Java que desenvolvi para realizar sorteios aleatórios de nomes de pessoas, até aí tudo bem, consegui deixar funcionando, o que eu não conseguir foi tirar a repetição dos nomes que já foram sorteados. Gostaria de uma ajuda para implementar este recurso no código que segue abaixo:



  1. Astiazara
    Posts:3


    Comment Arrow

    Publicado em: 06/08/2016 23:14:19

    Sortear um item de uma lista implica que ele pode ser sorteado novamente uma segunda vez. Se você precisa que os itens sorteados não se repitam mais, então você deve imaginar um saco contendo papeizinhos dobrados com os nomes escritos. Para sortear você coloca a mão dentro, retira um papel, o lê e não o coloca mais no saco. Assim quando for sortear o próximo o nome sorteado anteriormente não estará mais no saco e não será mais sorteado.
    Da mesma forma, basta você fazer isso na classe Sorteia (que deveria se chamar Sorteador). Torne a lista uma atributo privado e a instancie e popule no construtor da classe Sorteia. Declare uma variável int chamada indice e armazene nela o índice sorteado. Declare uma variável String nomeSorteado e armazene nela o valor da lista no índice sorteado. Remova da lista a posição do indice e só então retorne o nomeSorteado.
    Porém, assim como o saco pode ficar vazio a medida que você tira os papeizinhos, o objeto pode ficar sem nomes para sortear. Você deve tratar isso no método sorteia. Se a lista estiver vazia não é mais possível sortear nada.



  1. Relacionados