Dúvida com ArrayList

6 respostas
G

Galera, seguinte, preciso fazer um programa para um Campeonato de Futebol.
Fiz o seguinte, o usuário vai digitar uma quantidade par de times que serão adicionar em um ArrayList
Depois eu tenho uso o shuffle para trocar os lugares dos times.
Agora eu preciso usar esse ArrayList pra gerar uma Tabela, por exemplo:

Se o usuário digita 4 times: Palmeiras, São Paulo, Flamengo, Vasco
Depois do Shuffle: São Paulo, Flamengo, Vasco Palmeiras
e depois preciso de algo assim:

São Paulo x Flamengo
Vasco x Palmeiras

pra poder recolher resultado dos jogos, agradeço dicas e ideias.

6 Respostas

pedroroxd
Fiz rapidinho, ve se funciona
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class CampoDeFutebol {

	public static void main(String[] args) {
		List<String> listtimes = new ArrayList<String>(); //declarando a lista de times
		Scanner scn = new Scanner(System.in); //declarando o scanner
		int numerodetimes = 1; //iniciando com um número impar para entrar na condição abaixo:

		while (numerodetimes % 2 != 0) { //repita até que o número digitado seja par
			System.out.println("Digite o número de times: ");
			numerodetimes = scn.nextInt();
		}

		for (int i = 1; i <= numerodetimes; i++) {
			System.out.println("Digite o nome do time " + i + ": ");
			listtimes.add(scn.next()); //adiciona na lista
		}

		// Embaralhamos a lista
		Collections.shuffle(listtimes);

		// Retornamos o resultado da tabela
		int cont = 0;
		System.out.println(); //só para dar um espacinho
		System.out.println("RESULTADO:");
		while (cont < numerodetimes) {
			System.out.println(listtimes.get(cont++) + " X " + listtimes.get(cont++));
		}

	}

}
pedroroxd
O acima só gera os jogos.. Esse aki eu fiz para gerar os jogos e o número de gols:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class CampoDeFutebol {

	public static void main(String[] args) {
		List<String> listtimes = new ArrayList<String>(); //declarando a lista de times
		Scanner scn = new Scanner(System.in); //declarando o scanner
		int numerodetimes = 1; //iniciando com um número impar para entrar na condição abaixo:
		Random random = new Random(); //declarando o random, utilizado para gerar o numero de gols.
		
		while (numerodetimes % 2 != 0) { //repita até que o número digitado seja par
			System.out.println("Digite o número de times: ");
			numerodetimes = scn.nextInt();
		}
			System.out.println(""); //só para dar o espaço

		for (int i = 1; i <= numerodetimes; i++) {
			System.out.println("Digite o nome do time " + i + ": ");
			listtimes.add(scn.next()); //adiciona na lista
		}

		// Embaralhamos a lista
		Collections.shuffle(listtimes);

		// Retornamos o resultado da tabela
		int cont = 0;
		System.out.println(); //só para dar um espacinho
		System.out.println("RESULTADO:");
		while (cont < numerodetimes) {		  
			 int gols1 = random.nextInt(10); //número randomico entre 0 e 9 
			 int gols2 = random.nextInt(10); 
			System.out.println(listtimes.get(cont++) + " "+ gols1+" X " + gols2 + " " + listtimes.get(cont++));
		}
	}
}
Exemplo de saída:
Digite o número de times: 
4

Digite o nome do time 1: 
Atletico
Digite o nome do time 2: 
Cruzeiro
Digite o nome do time 3: 
Vasco
Digite o nome do time 4: 
Fluminense

RESULTADO:
Fluminense 2 X 3 Atletico
Vasco 2 X 8 Cruzeiro
G

Vou testar aqui, valeu [=

pedroroxd

Dinada…
Agora vc pode implementar, usando swing, tabelas (PELO AMOR DE DEUS, NAO USE DEFAULT TABLE MODEL), etc

G

Bom, agora só tenho um problema, os dados das rodadas teem de que colocadas pelo usuário, são duas rodadas, e o programa roda com diferentes números de times (acima de 4, números pares), fico imaginando como eu poderia fazer o sistema de pontuação… Estou aberto a dicas e sugestões, Obrigado!

pedroroxd

Como assim? Em vez de usar o randon vc vai digitar ?
É só usar o scanner…

Criado 27 de março de 2010
Ultima resposta 28 de mar. de 2010
Respostas 6
Participantes 2