(OBS: meu primeiro post. Não encontrei solução aqui ainda)
A ideia e de criar um "Amigo oculto/secreto" !
Preciso fazer com que aconteça um sorteio a partir de um método .
deve funcionar de modo que nenhum participante fique sem amigo e não se pode repetir nenhum participante.
em seguida devo fazer outro método para visualizar os amigos sorteados.
o problema é que não consigo fazer o sorteio usando ArrayList.
ESTOU TENTANDO ...mas ate agora so consegui exibir um sorteio . alguém pode me ajudar ?
package amigooculto;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import javax.swing.JOptionPane;
public class AmigoOculto
{
ArrayList<ListaAmigos> dados = new ArrayList<>();
ArrayList<ListaAmigos> Sorteio = new ArrayList<>();
ArrayList<String> AmigosSorteados = new ArrayList<>();
public void Cadastro()
{
ListaAmigos lista = new ListaAmigos();
lista.setNome(JOptionPane.showInputDialog("Infome o seu nome completo:"));
lista.setPresente(JOptionPane.showInputDialog("Infome o presente que voce deseja:"));
dados.add(lista);
}
public void Sorteio()
{
Collections.shuffle(dados);
System.out.println(dados.toString());
Random sorteio = new Random();
ListaAmigos lista = new ListaAmigos();
int NumSorteado;
for(int contador = 0; contador < dados.size(); contador++)
{
lista.setSorteou(dados.get(contador).getNome());
NumSorteado = sorteio.nextInt(dados.size());
AmigosSorteados.add(dados.get(NumSorteado).getNome());
while(AmigosSorteados.contains(dados.get(NumSorteado).getNome()) == true ||
lista.getSorteou() == dados.get(NumSorteado).getNome())
{
NumSorteado = sorteio.nextInt(dados.size());
}
lista.setSorteado(dados.get(NumSorteado).getNome());
Sorteio.add(lista);
}
}
public void Vizualizar()
{
for(int contador = 0; contador < Sorteio.size(); contador++)
{
System.out.println(Sorteio.get(contador).getSorteou() + " tirou: " + Sorteio.get(contador).getSorteado());
}
}
public void QuantidadeElementos()
{
int tam = dados.size();
System.out.println("a lista possui: " + tam + " amigos");
}
public void reiniciar()
{
if (dados.size() > 0){
dados.removeAll(dados);
System.out.println("Todos os amigos foram excluidos");
}
else{
System.out.println("Nenhum amigo foi armazenado");
}
}
public static void main(String[] args) throws vazio
{
AmigoOculto A = new AmigoOculto();
int op = 0;
while(true)
{
op = Integer.parseInt(JOptionPane.showInputDialog(null, "MENU:\n\n1. Cadastrao\n2. Sortear\n3. Vizualizar\n4. Quantidade de amigos\n5. Reiniciar \n\nDigite a opção:"));
switch (op)
{
case 1:
A.Cadastro();
String NomeUser = "";
NomeUser = JOptionPane.showInputDialog("confirme o seu nome");
if(NomeUser.isEmpty() == true)
{
throw new vazio();
}
NomeUser = NomeUser.trim();
break;
case 2:
A.Sorteio();
break;
case 3:
A.Vizualizar();
break;
case 4:
A.QuantidadeElementos();
break;
case 5:
A.reiniciar();
break;
}
}
}
}
package amigooculto;
public class ListaAmigos
{
private String Nome;
private String Presente;
private String Sorteou;
private String Sorteado;
public String getNome()
{
return Nome;
}
public void setNome(String nome)
{
Nome = nome;
}
public String getPresente()
{
return Presente;
}
public void setPresente(String presente)
{
Presente = presente;
}
public String getSorteou()
{
return Sorteou;
}
public void setSorteou(String sorteou)
{
Sorteou = sorteou;
}
public String getSorteado()
{
return Sorteado;
}
public void setSorteado(String sorteado)
{
Sorteado = sorteado;
}
}
Bem vindo ao GUJ!