Pessoal, alguém sabe como eu poderia fazer para sortear Strings.
Estava vendo algo desse tipo… mas não funcionou
[code]import java.util.ArrayList;
import java.util.Collections;
public class Jogadores {
public static void main(String[] args) {
ArrayList<String> nomes = new ArrayList<String>();
nomes.add ("A1");
nomes.add ("B1");
nomes.add ("C1");
nomes.add ("D1");
Collections.shuffle(nomes) ;
}
}[/code]
criador
Outubro 21, 2009, 10:23am
#2
Valeu!
Vou testar, pelo que vi é exatamente o que eu preciso!
criador
Outubro 21, 2009, 10:25am
#5
Funcionou com certeza.
O único problema é que você não imprimiu os novos dados para verificar se realmente sorteou =\
Abraço!
shuffle = embaralhar
sort = ordenar
Acho que “sortear”, para você, é escolher ao acaso, não “efetuar um sort” ou “ordenar” que é uma gíria de pessoal de TI. É isso mesmo?
Então embaralhe as strings, como você fez, e vá pegando os valores na lista até que você se dê por satisfeito.
seu código funciona sim
se voçê der um toString() vai ver que os elementos do array mudarma de posição
ArrayList<String> nomes = new ArrayList<String>();
nomes.add ("A1");
nomes.add ("B1");
nomes.add ("C1");
nomes.add ("D1");
System.out.println(nomes.toString());
Collections.shuffle(nomes) ;
System.out.println(nomes.toString());
Está certo sim!
Só não mandei imprimir.
Queria fazer o seguinte
[code]import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
public class Jogadores {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Digite 12 jogadores");
ArrayList<String> nomes = new ArrayList<String>();
for (int i = 0; i<12; i++) {
nomes.add(JOptionPane.showInputDialog(null, "Jogador: " + (i+1)));
}
Collections.shuffle(nomes) ;
int n=0;
if (n < 6){
n++;
JOptionPane.showMessageDialog(null, "Time A = " + nomes);
}else{
JOptionPane.showMessageDialog(null, "Time B = " + nomes);
}
}
}[/code]
Gostaria de separar dois times.
Quando for 6 manda os restante dos jogadores para o time B
criador
Outubro 21, 2009, 10:58am
#9
Dá de fazer assim:
ArrayList<String> nomesA = new ArrayList<String>(), nomesB = new ArrayList<String>();
for (int i = 0; i < 12; i++) {
if (i < 6) {
nomesA.add(JOptionPane.showInputDialog("Jogador " + (i + 1)));
} else {
nomesB.add(JOptionPane.showInputDialog("Jogador " + (i + 1)));
}
}
Abraço!