Tá acabando!

Compre agora com desconto
Corra enquanto há tempo!

dias

:

horas

:

minutos

:

segundos

Iterando uma lista em Java

Alex Felipe Victor Vieira
Alex Felipe Victor Vieira

Compartilhe

Tenho uma lista com todos os livros que comprei e quero saber quanto eu gastei no total:


List<Livro> compras = new ArrayList<Livro>();

compras.add(new Livro("Java", 25.50)); 
compras.add(new Livro("HTML e CSS", 21.30));
compras.add(new Livro("Android", 22.54));

Agora vou varrer minha lista e somar o preço de cada livro usando um for:


double total = 0; 
for (int i = 0; i < compras.size(); i++) { 
    total = total + compras.get(i).getPreco(); }

Resultado:

69.34

Agora eu sei quanto gastei! Porém, olha o tanto de parâmetro e código que tive que escrever...será que não tem uma forma mais simples de resolver? A partir do Java 1.5 foi disponibilizado o enhanced-for ou mais conhecido como foreach:


double total = 0; 
for (Livro livro : compras) { 
    total = total + livro.getPreco(); }

Resultado:

69.34

Veja que temos o mesmo resultado! Mas o que está acontecendo nesse código? Basicamente estamos pegando cada objeto(livro) contido na lista, ou seja, para cada (for each) livro some o seu preço com o total. Bem intuitivo e simples! Poderíamos até imprimir todos os livros usando o foreach:


for (Livro livro : compras) { 
    System.out.println(livro.getNome()); }

Resultado:

Java HTML e CSS Android

A partir do Java 8 foi introduzido o método forEach() capaz de fazer iterações em lista de forma similar ao enhanced-for:


compras.forEach(livro -> System.out.println(livro.getNome()));

Resultado:

Java HTML e CSS Android

Bem mais simples! E tudo em uma única linha!

E aí, gostou dessa nova implementação do Java 8? Quer conhecer mais sobre as novidades do Java 8? O criador da Caelum, Paulo Silveira, criou o curso de Java 8 e suas bibliotecas com mais 1500 alunos e 99% recomendação.

Alex Felipe Victor Vieira
Alex Felipe Victor Vieira

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Criador de mais de 40 cursos, como Kotlin, Flutter, Android, persistência de dados, comunicação com Web API, personalização de telas, testes automatizados, arquitetura de Apps e Firebase. É expert em Programação Orientada a Objetos, visando sempre compartilhar as boas práticas e tendências do mercado de desenvolvimento de software. Atuou 2 anos como editor de conteúdo no blog da Alura e hoje ainda escreve artigos técnicos.

Veja outros artigos sobre Programação