Em Java, funções anônimas , também conhecidas como expressões lambda. Foi introduzido no Java 8 como uma forma de fornecer código mais conciso e legível. Eles nos permitem definir uma função em uma única linha de código sem precisar definir explicitamente uma classe ou interface.
final java para loop
O que é uma função anônima?
Uma função anônima é uma função que não possui nome e não está vinculada a um identificador. Normalmente é definido em linha e pode ser passado como um argumento para outra função ou retornado como um valor de uma função. Em Java, funções anônimas são implementadas como expressões lambda, que são uma forma abreviada de definir uma função anônima.
Sintaxe
A sintaxe para uma função anônima em Java é a seguinte:
(parameters) -> { body }
Os parâmetros são as entradas da função e o corpo é o código executado quando a função é chamada. Aqui está um exemplo de função anônima que recebe dois inteiros como entradas e retorna sua soma:
(int a, int b) -> { return a + b; }
A função anônima acima pode ser passada como argumento para outra função ou atribuída a uma variável:
Function add = (a, b) -> a + b;
Neste exemplo, definimos uma variável chamada add que é uma função que recebe dois inteiros como entradas e retorna sua soma.
Vantagens das funções anônimas
O uso de funções anônimas em Java tem diversas vantagens, incluindo:
Sintaxe concisa: Funções anônimas fornecem uma maneira concisa de definir uma função sem a necessidade de definir uma classe ou interface separada.
Código legível: Como as funções anônimas são definidas em linha, o código pode ser mais fácil de ler e entender.
Flexibilidade: Funções anônimas podem ser passadas como argumentos para outras funções ou retornadas como valores de funções, proporcionando mais flexibilidade na forma como as funções são usadas.
Performance melhorada: O uso de funções anônimas pode melhorar o desempenho, reduzindo a quantidade de memória e o poder de processamento necessários para definir e chamar funções.
aqui está um exemplo de código Java que demonstra o uso de funções anônimas (expressões lambda) para filtrar uma lista de inteiros:
AnonymousFunctionExample.java
import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; public class AnonymousFunctionExample { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); // Filter the list to only include even numbers Predicate isEven = (n) -> n % 2 == 0; List evenNumbers = filter(numbers, isEven); // Print the even numbers System.out.println('Even numbers:'); for (Integer number : evenNumbers) { System.out.println(number); } } // Filter a list using a predicate public static List filter(List list, Predicate predicate) { List result = new ArrayList(); for (T element : list) { if (predicate.test(element)) { result.add(element); } } return result; } }
Saída:
Even numbers: 2 4
Neste código, definimos uma lista de inteiros e então usamos uma função anônima (expressão lambda) para definir um predicado que filtra a lista para incluir apenas números pares. Em seguida, usamos o método filter para aplicar o predicado à lista e retornar uma nova lista de números pares. Finalmente, imprimimos os números pares usando um loop for.
Aqui está outro exemplo de código Java que demonstra o uso de funções anônimas (expressões lambda) para classificar uma lista de strings:
AnonymousFunctionExample.java
import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class AnonymousFunctionExample { public static void main(String[] args) { List fruits = new ArrayList(); fruits.add('Apple'); fruits.add('Banana'); fruits.add('Grape'); fruits.add('Orange'); fruits.add('Pineapple'); // Sort the list of fruits alphabetically fruits.sort((f1, f2) -> f1.compareTo(f2)); // Print the sorted list of fruits System.out.println('Sorted list of fruits:'); for (String fruit : fruits) { System.out.println(fruit); } } }
Saída:
Sorted list of fruits: Apple Banana Grape Orange Pineapple
No código acima, definimos uma lista de frutas e então usamos uma função anônima (expressão lambda) para definir um comparador que classifica a lista em ordem alfabética. Em seguida, usamos o método sort para aplicar o comparador à lista e classificá-la. Finalmente, imprimimos a lista ordenada de frutas usando um loop for.
Conclusão
Funções anônimas em Java fornecem uma maneira concisa e legível de definir funções sem a necessidade de definir uma classe ou interface separada. Eles podem ser usados para melhorar o desempenho do código e fornecer mais flexibilidade na forma como as funções são usadas. Com a introdução das expressões lambda no Java 8, as funções anônimas se tornaram uma ferramenta importante para os desenvolvedores escreverem códigos mais eficientes e de fácil manutenção.