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
Aqui estão alguns exemplos para entender melhor:
Exemplo 1: Lambda simples
() -> System.out.println("Olá, mundo!");
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
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
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));
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());
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)