Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Feito assim:

        ArrayList<Filme> listaDeFilmes = new ArrayList<>();
        
        System.out.println("Testes de Array");
        listaDeFilmes.add(meuFilme);
        listaDeFilmes.add(segundoFilme);
        listaDeFilmes.add(terceiroFilme);
        System.out.println(listaDeFilmes.size());
        System.out.println("O primeiro filme foi: " + listaDeFilmes.get(0).getNome());
        System.out.println(listaDeFilmes);
        System.out.println(listaDeFilmes.toString());
        System.out.println("O primeiro filme foi: " + listaDeFilmes.get(0).toString());
    @Override
    public String toString() {
        return "[Exemplo de Alteração toString] Filme: " + this.getNome() + " ( " + this.getAnoLancamento() +" )";
    }
2 respostas
solução!

Olá, Marcus.

Tudo bem?

Pelo que vejo, você está no caminho certo. Seu código está bem estruturado e parece que você entendeu bem o conceito de ArrayList e o método toString().

O método toString() que você sobrescreveu na classe Filme está correto. Ele retorna uma String formatada com o nome do filme e o ano de lançamento, que é exatamente o que se espera.

Agora, olhando para o seu código principal, você criou um ArrayList de Filmes, adicionou alguns filmes à lista e fez algumas operações de impressão. Quando você chama System.out.println(listaDeFilmes);, o Java automaticamente chama o método toString() para cada objeto na lista, então você verá a saída formatada para cada filme.

A linha System.out.println("O primeiro filme foi: " + listaDeFilmes.get(0).toString()); também está correta. Aqui, você está explicitamente chamando o método toString() no primeiro filme da lista, que vai retornar a String formatada que você definiu na classe Filme.

A única coisa que eu sugeriria é que você poderia adicionar mais filmes à sua lista para testar ainda mais o seu código. Por exemplo:

listaDeFilmes.add(quartoFilme);
listaDeFilmes.add(quintoFilme);

E depois imprimir todos os filmes na lista:

for (Filme filme : listaDeFilmes) {
    System.out.println(filme);
}

Isso vai imprimir todos os filmes na lista, cada um em sua própria linha, usando a formatação definida no método toString() que você sobrescreveu.

Espero ter ajudado e bons estudos!

Olá, Renan. Ótima dica, obrigado pelo insight. Abraços.