Sortear

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]

http://www.guj.com.br/posts/list/104707.java

Exatamente o que você precisa.

Abraço!

Ué, o que não funcionou?

Valeu!

Vou testar, pelo que vi é exatamente o que eu preciso!

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

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!