Iterando uma lista em Java - Blog da Alura
(Last Updated On: 20 de fevereiro de 2016)
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:
for (int i = 0; i < compras.size(); i++) {
total = total + compras.get(i).getPreco();
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:
for (Livro livro : compras) {
total = total + livro.getPreco();
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:
System.out.println(livro.getNome());
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()));
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.