- Autor
- Nome
- Nelson Silva
- Social
Introdução
As expressões lambda, introduzidas no Java 8, revolucionaram a maneira como escrevemos e compreendemos o código em Java, tornando-o mais conciso, legível e expressivo.
O que é o Lambda?
O Lambda é um conceito que permite representar uma instância de uma interface funcional de uma maneira mais curta e simplificada. Basicamente, é uma forma de escrever funções anónimas: funções sem nome.
Vantagens do Lambda
- Concisão: O código torna-se mais enxuto e limpo.
- Legibilidade: Facilita a leitura e compreensão do código.
- Flexibilidade: Pode ser usado em conjunto com novas características do Java 8, como Streams.
Exemplo de Uso
package com.caffeinealgorithm.programaremjava;
import java.util.ArrayList;
import java.util.List;
public class Lambda {
private List<String> pessoas = new ArrayList<>();
public void Run() {
pessoas.add("Nelson Silva");
pessoas.add("Larissa Fernandes");
pessoas.add("Pedro Henrique");
pessoas.add("Raquel Soares");
// listarPessoas();
pessoas.forEach((pessoa) -> System.out.printf("Nome: %s\n", pessoa));
}
private void listarPessoas() {
for (String pessoa : pessoas)
System.out.printf("Nome: %s\n", pessoa);
}
}
/*
Nome: Nelson Silva
Nome: Larissa Fernandes
Nome: Pedro Henrique
Nome: Raquel Soares
*/
Como Funciona?
No exemplo apresentado anteriormente, vemos a utilização do lambda para percorrer uma lista e imprimir cada elemento. Aqui, o método forEach
aceita uma expressão lambda, que define o que fazer com cada elemento da lista.
Mais Exemplos
- Ordenar uma lista:
List<Integer> numeros = Arrays.asList(5, 2, 8, 3, 1);
numeros.sort((n1, n2) -> n1.compareTo(n2));
System.out.println(numeros);
- Criar uma thread:
new Thread(() -> System.out.println("Thread sendo executada usando Lambda!")).start();
- Operações com Streams:
long quantidade = pessoas.stream()
.filter(pessoa -> pessoa.startsWith("N"))
.count();
System.out.println("Quantidade de pessoas cujo nome começa com a letra N: " + quantidade);
Conclusão
As expressões lambda são uma adição poderosa à linguagem Java, permitindo que os desenvolvedores escrevam código de maneira mais eficiente e expressiva. Além disso, lambdas são cruciais para aproveitar ao máximo as novas características do Java, especialmente aquelas introduzidas no Java 8, como Streams.