Acabei realizando algumas alterações no código e coloquei alguns comentários.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class SorteiaNomesPrimeiroGP2 {
public static void main(String[] args) {
String nomes;
String[] nomesDelimitados;//utilizada para armanezar nomes recebidos pelo método split
Scanner scanner = new Scanner(System.in);
//Recebe os nomes delimitados
System.out.println("Digite os nomes dos jogadores delimitados por ',':");
nomes = scanner.next();
//Inicializa um array de strings com o valor da variável nomes
nomesDelimitados=nomes.split(",");
ArrayList<String> nomesArrayList = new ArrayList<>();
//Adiciona nomesDelimatados no ArrayList
for (int i = 0; i < nomesDelimitados.length; i++) {
String nome=nomesDelimitados[i];
nomesArrayList.add(nome);
}
System.out.println(nomesArrayList.size());
System.out.print(" TIME 1 \n ");
System.out.println("______________________________ \n");
Collections.shuffle(nomesArrayList);
//Realiza um laço até o tamanho do ArrayList
//No código anterior o laço sempre acessava uma posição inexistente no ArrayList
for (int i = 0; i <nomesArrayList.size(); i++) {
//Realiza o cast do resultado da expressão( Math.random() * nomesArrayList.size()
//No código anterior, o cast era feito apenas em Math.random()
int escolha = (int)( Math.random() * nomesArrayList.size());
System.out.println("*" + nomesArrayList.get(escolha));
nomesArrayList.remove(escolha);
}
System.out.print(" TIME 2 \n ");
System.out.println("______________________________ \n");
Collections.shuffle(nomesArrayList);
//Realiza um laço até o tamanho do ArrayList
for (int i = 0; i < nomesArrayList.size(); i++) {
int escolha = (int) Math.random() * nomesArrayList.size();
System.out.println("*" + nomesArrayList.get(escolha));
nomesArrayList.remove(escolha);
}
}
}
Cara, seu código me ajudou muito. O achei um problema na hora de executar. Quando ele faz o sorteio o segundo grupo não ssai com a quantidade de nomes solicitados. Consegui fazer aqui o sorteio com a quantidade solicitada.
public static void main(String[] args) {
String nomes;
String[] nomesDelimitados;
Scanner scanner = new Scanner(System.in);
System.out.println("Digite os nomes dos jogadores:");
nomes = scanner.next();
nomesDelimitados = nomes.split(",");
List<String> nomes1 = new ArrayList<>();
for (int i = 0; i < nomesDelimitados.length ; i++) {
String nome = nomesDelimitados[i];
nomes1.add(nome);
}
// System.out.println(nomes1);
System.out.print(" TIME 1 \n “);
System.out.println(”______________________________ \n");
// SORTEIA A LISTA DO TIME 1
Collections.shuffle(nomes1);
// ELIMINA AS REPETIÇÕES
for (int i = 0; i < 5; i++) {
int escolha = (int) Math.random() * nomes1.size();
System.out.println("*" + nomes1.get(escolha));
nomes1.remove(escolha);
}
System.out.print(" TIME 2 \n ");
System.out.println("______________________________ \n");
Collections.shuffle(nomes1);
// ELIMINA AS REPETIÇÕES
for (int i = 0; i < 5; i++) {
int escolha = (int) Math.random() * nomes1.size();
System.out.println("*" + nomes1.get(escolha));
nomes1.remove(escolha);
}
}
Agora o próximo passo é fazer com que o usuário escolha a quantidade de jogares pra cada time. ainda chego la.