Programa Java para passar a expressão lambda como um argumento do método

Neste exemplo, aprenderemos a passar a expressão lambda como o argumento do método em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Expressões Java Lambda
  • Classe ArrayList Java
  • Métodos Java

Exemplo 1: definir expressões lambda como parâmetros de método

 import java.util.ArrayList; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList languages = new ArrayList(); // add elements to the ArrayList languages.add("java"); languages.add("swift"); languages.add("python"); System.out.println("ArrayList: " + languages); // pass lambda expression as parameter to replaceAll() method languages.replaceAll(e -> e.toUpperCase()); System.out.println("Updated ArrayList: " + languages); ) )

Resultado

 ArrayList: (java, swift, python) ArrayList atualizado: (JAVA, SWIFT, PYTHON)

No exemplo acima, criamos um arraylist chamado languages. Observe a linha,

 languages.replaceAll(e -> e.toUpperCase());

Aqui, e -> e.toUpperCase()está uma expressão lambda. Ele pega todos os elementos do arraylist e os converte em letras maiúsculas.

Exemplo 2: passe o corpo lambda de várias linhas como argumentos de função

 import java.util.ArrayList; import java.util.Arrays; class Main ( public static void main(String() args) ( // create an ArrayList ArrayList languages = new ArrayList(Arrays.asList("java", "python")); System.out.println("ArrayList: " + languages); // call the foEach() method // pass lambda as argument fo forEach() // reverse each element of ArrayList System.out.print("Reversed ArrayList: "); languages.forEach((e) -> ( // body of lambda expression String result = ""; for (int i = e.length()-1; i>= 0 ; i--) result += e.charAt(i); System.out.print(result + ", "); )); ) )

Resultado

 ArrayList: (java, python) Reversed ArrayList: avaj, nohtyp,

No exemplo acima, criamos uma linguagem arraylist. Observe a linha,

  languages.forEach((e) -> ( // body of lambda expression String result = ""; for (int i = e.length()-1; i>= 0 ; i--) result += e.charAt(i); System.out.print(result + ", "); ));

Aqui, estamos passando a expressão lambda como um argumento para o método ArrayList forEach (). A expressão lambda reverterá cada elemento da lista de arraylist.

Artigos interessantes...