Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Velasco

Dúvida sobre ArrayList e Strings2

Recommended Posts

Pessoal, eu tenho estas duas classes:

public class Jogador{
private String nome;
private int id;
private double totalPontos;
private double totalComposto;
private String resultadoString;
private int classificacao;
public ArrayList<Lancamento> lancamentos = new ArrayList<Lancamento>();
//getters and setters
}
public class Lancamento{
private int dado1;
private int dado2;

//getters and setters

}

Eu preciso fazer a impressão na tela tanto de um ArrayList de Jogadores tanto de um ArrayList dos lançamentos de jogadores, só que eles não ficam organizados de jeito nenhum, eu preciso de uma impressão desta forma:

Classificação Nome Lançamento 1 Lançamento 2 Lançamento x...

1° a 1 2 3 4 ...

2° b 3 6 5 6 ...

3° c 4 5 7 8 ...

O que acontece é que está impossível organizar o jogador e seus respectivos lançamentos na mesma linha, um jogador pode ter de 3 até 8 lançamentos, alguma ideia de como é possível fazer essa impressão em String de maneira que ela fique organizada dessa forma? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi seu problema, acho mais fácil você criar uma classe que represente a classificação e esta conter as infos de cada jogador e aí então fazer uma lista dela e depois imprimir seus valores dentro de um for.

Algo mais ou menos assim:

class Classificacao {

	public static final ESPACO_ENTRE_COLUNAS = "   ";

	private Integer posicao;
	private Jogador jogador;
	//getters e setters

	public void imprime() {
		StringBuilder msg = new StringBuilder();
		msg.append(posicao.toString());
		msg.append(ESPACO_ENTRE_COLUNAS);
		msg.append(jogador.getNome());
		msg.append(ESPACO_ENTRE_COLUNAS);

		for(Lancamento l : jogador.getLancamentos()) {
			msg.append(l.getDado1.toString());
			msg.append(l.getDado2.toString());
			msg.append(ESPACO_ENTRE_COLUNAS);
		}

		System.out.println(msg.toString());
	}
}

Aí na hora de imprimir, você teria uma lista de classificações e faria algo do tipo:

StringBuilder sb = new StringBuilder();
sb.append("Classificacao");
sb.append(Classificacao.ESPACO_ENTRE_COLUNAS);
sb.append("Nome");
sb.append(Classificacao.ESPACO_ENTRE_COLUNAS);
sb.append("Lancamento 1");
sb.append(Classificacao.ESPACO_ENTRE_COLUNAS);
//faz até o max de lançamentos.. é só o cabeçalho
for(Classificacao c : classificacoes) {
	c.imprime();
}

Entendeu?

Espero ter ajudado! :)

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.