Expressões Lambda em Java

Uma discussão sobre Java Lambda é apresentada na tentativa de satisfazer a curiosidade do leitor por conhecimento.

Expressões Java Lambda

Em termos de Java Lambda , o Java 8 introduziu Expressões Lambda .

Expressões Java Lambda são pequenos blocos de código que usam parâmetros e retornam valores. Ao contrário dos métodos, as expressões lambda não requerem um nome e podem ser incluídas no corpo de um método.

Sintaxe

Em sua forma mais simples, as expressões lambda têm um parâmetro e uma expressão:

parameter -> expression

Você pode usar mais de um parâmetro envolvendo -os entre parênteses:

(parameter1, parameter2) -> expression

Há um limite para expressões. Além de retornar um valor imediatamente, eles não podem conter variáveis , atribuições ou instruções if ou loop for .

Os blocos de código podem ser colocados entre chaves {} para realizar operações mais complexas. O bloco de código deve incluir uma instrução de retorno se a expressão lambda retornar um valor.

(parameter1, parameter2) -> { code block }


Exemplos de Expressões Lambda

Quando se trata de Java Lambda , as expressões lambda são passadas principalmente como parâmetros:

Use uma expressão Lambda no método forEach() do LinkedList para imprimir 5 números primos da lista:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList prime_numbers=new LinkedList();
prime_numbers.add(2);
prime_numbers.add(3);
prime_numbers.add(5);
prime_numbers.add(7);
prime_numbers.add(11);
prime_numbers.forEach( (mrx) -> {
System.out.println(mrx);
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplos de Expressões Java Lambda

Da mesma forma, para examinar o uso do Lambda, siga o exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet identity_Documents=new HashSet();
identity_Documents.add("State identification (ID) card");
identity_Documents.add("Driver license");
identity_Documents.add("US passport");
identity_Documents.add("Permanent Resident Card");
System.out.println("Basic Verification documents in America: \n");
identity_Documents.forEach( (ample) -> {
System.out.println(ample);
});
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Se o tipo da variável for uma interface com apenas um método, nelas podem ser armazenadas expressões lambda.

Deve haver o mesmo número de parâmetros e tipo de retorno para a expressão lambda que para o método.

Em Java , muitos desses tipos de interface são integrados, como a interface Consumer no pacote java.util .

Você pode armazenar expressões lambda em variáveis ​​usando a interface de consumidor do Java :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.LinkedList;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
LinkedList coordinating_Conjunctions=new LinkedList<>();
coordinating_Conjunctions.add("for");
coordinating_Conjunctions.add("and");
coordinating_Conjunctions.add("but");
coordinating_Conjunctions.add("yet");
coordinating_Conjunctions.add("or");
System.out.println("The Conjunctions of the English Language is: \n");
Consumer conjunctions=(ample) -> { System.out.println(ample); };
coordinating_Conjunctions.forEach(conjunctions);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Outra Abordagem:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.LinkedList;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
LinkedList bool_values=new LinkedList();
bool_values.add(true);
bool_values.add(false);
System.out.println("Following are the Boolean values: \n");
Consumer booleans=(mrx) -> { System.out.println(mrx); };
bool_values.forEach(booleans);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

É necessário ter um parâmetro com uma interface de método único como seu tipo para que uma expressão lambda funcione em um método. A expressão lambda será executada se você chamar o método da interface.

Faça um método que aceite uma expressão lambda como parâmetro:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface StringFunction {
String run(String mrx);
}
public class Main {
public static void main(String[] args) {
StringFunction exclaim = (string) -> string + "!";
StringFunction ask = (string2) -> string2 + "?";
mrx_Print("Welcome", exclaim);
mrx_Print("Are you enjoying learning Lambda Expressions", ask);
}
public static void mrx_Print(String mrx, StringFunction formatting) {
String ample_Result = formatting.run(mrx);
System.out.println(ample_Result);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Example:2 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
interface English_Language_Punctuation {
String run(String ample);
}
public class Main {
public static void main(String[] args) {
English_Language_Punctuation exclamation_mark = (mrx) -> mrx + "!";
English_Language_Punctuation question_mark = (mrx) -> mrx + "?";
English_Language_Punctuation full_stop = (mrx) -> mrx + ".";
English_Language_Punctuation comma = (mrx) -> mrx + ",";
English_Language_Punctuation hyphen = (mrx) -> mrx + "/";
English_Language_Punctuation quotation_mark = (mrx) -> mrx + "" "";
mrx_Print("\nGreetings",exclamation_mark);
mrx_Print("\nHow are you",question_mark);
mrx_Print("\nI hope that after reading this article, you have gathered good concepts regarding Java Lambda",full_stop);
mrx_Print("\nWe have tried our level best to fulfill the Reader",comma);
System.out.println("\nThere are some: ");
mrx_Print("\n1)Examples",hyphen);
System.out.println("2)Theoretical Concepts for you on this page.");
mrx_Print("\nAs this line we have learnt how to Implement the quotation marks such as ",quotation_mark);
}
public static void mrx_Print(String mrx, English_Language_Punctuation formatting_punctuation) {
String ample_Result = formatting_punctuation.run(mrx);
System.out.println(ample_Result);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone