Imprimindo um ArrayList

7 respostas
Diegomoco

O código não ta dando nenhum erro de sintaxe, mas ta dando um erro de execução.
Quando mando imprimir o arrayList ele imprime isso:

** Lista de alunos **
treinoProva.Time@1a758cb

Aí vai o trecho que eu mandei imprimir, será que por aí da pra ver algo errado?

case 2: { System.out.println("** Lista de alunos **"); for (int i=0;i<times.size();i++) { System.out.println(times.get(i)); } break; }

Valeu

7 Respostas

Diegomoco

Só lembrando que é um arrayList de objetos com 2 atributos cada…

Amanweb

Você está imprimindo o objeto. Não uma String.
Faça o cast (conversão) para o tipo esperado e imprima os métodos que desejar dentro desse objeto.
Outra alternativa é implementar o método toString no objeto. Dessa forma, o código que você criou imprimiria o que foi definido no método toString do objeto.

thundercas

Diego, deduzindo que sua array está guardando os objetos da classe Alunos, você precisa definir qual informação da classe Alunos você quer. Deste jeito, o sistema imprime sujeira (Acho que tem a ver com alocação na memória). Segue abaixo exemplo para correto funcionamento:

case 2:   
        {   
            System.out.println("** Lista de alunos **");   
            for (int i=0;i<times.size();i++)   
                {   
                System.out.println(times.get(i).getNotaFinal());   
                }   
            break;   
        }

Aman Rathie, não vejo necessidade de Cast, pois na inicialização do Array você já define o tipo do Array que deseja usar, diferentemente do List, onde seria necessário utilizar o Cast.

Esperto ter ajudado, abraços

S

Imagino que esse List em objetos da classe Time.
Se for isso, você precisa implementar o método toString() da classe pra retornar algo relevante. Exemplo:

@Override public String toString() { return this.nomeDoTime; }

Amanweb

thundercas:
Diego, deduzindo que sua array está guardando os objetos da classe Alunos, você precisa definir qual informação da classe Alunos você quer. Deste jeito, o sistema imprime sujeira (Acho que tem a ver com alocação na memória). Segue abaixo exemplo para correto funcionamento:

case 2:   
        {   
            System.out.println("** Lista de alunos **");   
            for (int i=0;i<times.size();i++)   
                {   
                System.out.println(times.get(i).getNotaFinal());   
                }   
            break;   
        }

Aman Rathie, não vejo necessidade de Cast, pois na inicialização do Array você já define o tipo do Array que deseja usar, diferentemente do List, onde seria necessário utilizar o Cast.

Esperto ter ajudado, abraços

Isso somente se você estiver utilizando Java 5 para cima.

W

Assim é mais bonitinho

Assumindo que seu vetor é da classe Time define assim :

ArrayList<Time> times = new ArrayList<Time>();

E imprime assim, você pode acessar qualquer método e não precisa utilizar a posição :

for(Time aluno : times){
                
                System.out.println( aluno.getNotaFinal());
                
            }
thegoergen

Você precisa sobrescrever o toString(). Aí sim, nele você coloca qual a representação em String que o seu objeto terá…

Criado 30 de março de 2008
Ultima resposta 1 de abr. de 2008
Respostas 7
Participantes 6