DEV Community

Cover image for Simplificando Expressões Lambdas em Java
Antonio Serra
Antonio Serra

Posted on • Edited on

Simplificando Expressões Lambdas em Java

Uma expressão lambda é uma função anônima que pode ser usada para criar instâncias de interfaces funcionais (interfaces com um único método abstrato). Elas são especialmente úteis quando você precisa passar uma função como argumento para outra função ou quando deseja executar uma operação em uma coleção de elementos.

Sintaxe Básica
A sintaxe básica de uma expressão lambda é a seguinte:

(parâmetros) -> expressão
Enter fullscreen mode Exit fullscreen mode

Aqui estão alguns exemplos para entender melhor:

Exemplo 1: Lambda simples

() -> System.out.println("Olá, mundo!");
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, não há parâmetros e a expressão lambda simplesmente imprime "Olá, mundo!" quando chamada.

Exemplo 2: Lambda com um parâmetro

(x) -> x * x
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, temos um único parâmetro x e a expressão lambda retorna o quadrado desse valor.

Exemplo 3: Lambda com múltiplos parâmetros

(x, y) -> x + y
Enter fullscreen mode Exit fullscreen mode

Aqui, temos dois parâmetros x e y, e a expressão lambda retorna a soma desses dois valores.

Usando Expressões Lambda
Agora que entendemos a sintaxe básica, vamos ver como usar expressões lambda em situações reais.

Exemplo 4: Ordenando uma lista de Strings
Suponha que você tenha uma lista de nomes e deseja ordená-la em ordem alfabética:

List<String> nomes = Arrays.asList("Alice", "Bob", "Charlie", "David");

// Usando uma expressão lambda para ordenar
Collections.sort(nomes, (a, b) -> a.compareTo(b));
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, a expressão lambda (a, b) -> a.compareTo(b) é usada para especificar a ordem de classificação. Ela compara dois nomes a e b usando o método compareTo.

Exemplo 5: Filtrando elementos de uma lista
Suponha que você deseje filtrar os números pares de uma lista de inteiros:

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);

// Usando uma expressão lambda para filtrar números pares
List<Integer> pares = numeros.stream()
                           .filter(n -> n % 2 == 0)
                           .collect(Collectors.toList());
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, a expressão lambda n -> n % 2 == 0 é usada para filtrar os números pares.

Linkedin: https://www.linkedin.com/in/antonio-rodrigo-wanderley-serra/
GitHub: https://github.com/antoniorws

Top comments (0)