Imprimindo um ArrayList

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

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

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.

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

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; }

[quote=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[/quote]

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

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());
                
            }

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