Sortear apenas um número no array

8 respostas
Flavio_Roberto_Prado

Olá, tudo bem? É minha primeira vez no tópico. Estou com uma dúvida para sortear um dado de um array.
Eis o meu código

static String[] vago = new String[] { "1", "2", "3", "4", "5" };

Quero sortear um desses números acima
O sistema é de um estacionamento que sorteia a vaga aleatoriamente. Ou seja, o cidadão vê o número e segue até a vaga disponível.
Obrigado

8 Respostas

Felipe_Miranda

Quando você usa a expressão sortear, acredito que esteja tentando “embaralhar aleatoriamente valores de uma lista/array”, então segue sua resposta:

String[] vaga = new String[] { "1", "2", "3", "4", "5" }; //Removi o modificador de acesso (static)
List<String> arrayConvertidoParaList = Arrays.asList(vaga); //Convertendo Seu Array para List
Collections.shuffle(arrayConvertidoParaList); //Espalhando aleatoriamente sua lista com o metódo shuffle
Felipe_Miranda

vinicius o seu metódo e o meu ambos fazem a mesma coisa, os dois organizam aleatoriamente valores de um conjunto.

Jonas_B_a_r_r_o_s

Talvez fosse melhor voce fazer essa veriricação com objetos, por ex, verificar se não estão nulos. Por uma vaga de estancionamento pode ter muitas informações, que não pode ser atribuida só a um numero.

E suponha que a vaga esteja ocupada, você mandaria aleatorizar novamente para encontrar a desocupada usando array de numeros?

Felipe_Miranda

tem razão vinicius! abraços…

Flavio_Roberto_Prado

Esse exercício não pode usar linguagem orientada a objeto. Mas é isso mesmo que você falou, quando a vaga estiver ocupada, não pode ser sorteada. Vou deixar o link do GitHub. Ele ta com um bug que eu não consigo resolver, mas esta respondendo a proposta. Peço que leiam o código e me diga uma boa maneira de escreve-lo.
Obrigado.

Flavio_Roberto_Prado

Obrigado galera por me ajudarem, vou deixar o link do GitHub, pois quero saber qual seria a melhor forma de escrever o código. Obrigado a todos.

Jonas_B_a_r_r_o_s

Qual criterio voce quer usar para informar que a vaga se torne desocupada ou ocupada?

Sandro_Machado

Você pode ter duas ArrayList, uma com vagas disponíveis e outro com vagas ocupadas.

sorteia uma vaga no ArrayList disponíveis e o remove, adicionando ao ocupadas.

outra forma é ao invés de usar Strings, usar int, e ao ocupar a vaga você negativa o valor, tipo selecionou a vaga 4 então atribua ela o valor -4, ou -1, então quando percorrer o array em busca de vagas disponíveis você verifica se o valor é maior que 0.

há várias formas, tem que ver a que melhor se adéqua a suas necessidades.

Criado 21 de agosto de 2016
Ultima resposta 23 de ago. de 2016
Respostas 8
Participantes 4