An important addition in Java SE 8 is the lambda expression feature. Use expressions to express method interfaces clearly and concisely. Collection libraries are very helpful. Collections can be iterated, filtered, and data extracted for useful purposes. To implement functional interfaces, lambda expressions are widely used. It saves a lot of code. Lambda expressions allow us to provide implementations without redefining methods. It is only here that the implementation code is formed by writing the code. The compiler does not create a .class file because Java lambda expressions are treated as functions.
@FunctionalInterface is a Java annotation that declares an interface as a functional interface. Functional interface is an interface with only one abstract method. Lambda expressions allow you to implement this functional interface.
It provides the implementation of functional interface.
It provides less encoding.
(argument-list) { //body }
It consists of three components −
Argument-List − Can be empty or non-empty
Arrow-Taken − Used to connect the parameter list and the body of the expression
Body − Expressions and statements containing lambda expressions
() { // body of no parameter lambda }
(p1) { // body of single parameter lambda }
(p1,p2) { //body of multiple parameter lambda }
@FunctionalInterface //It is optional interface Drawable{ public void draw(); } public class LambdaExpressionExample2 { public static void main(String[] args) { int width=10; //with lambda Drawable d2=()->{ System.out.println("Drawing "+width); }; d2.draw(); } }
Drawing 10
interface Drawable{ public void draw(); } public class LambdaExpressionExample { public static void main(String[] args) { int width=10; //without lambda, Drawable implementation using anonymous class Drawable d=new Drawable(){ public void draw(){System.out.println("Drawing "+width);} }; d.draw(); } }
Drawing 10
interface Sayable{ public String say(); } public class LambdaExpressionExample3{ public static void main(String[] args) { Sayable s=()->{ return "Don’t settle for average."; }; System.out.println(s.say()); } }
Don’t settle for average
interface Sayable { public String say(String name); } public class LambdaExpressionExample4{ public static void main(String[] args) { // Lambda expression with single parameter. Sayable s1=(name)->{ return "Hello, "+name; }; System.out.println(s1.say("World")); // You can omit function parentheses Sayable s2= name ->{ return "Hello, "+name; }; System.out.println(s2.say("World")); } }
Hello, World Hello, World
interface Addable{ int add(int a,int b); } public class LambdaExpressionExample5{ public static void main(String[] args) { // Multiple parameters in lambda expression Addable ad1=(a,b)->(a+b); System.out.println(ad1.add(20,20)); // Multiple parameters with data type in lambda expression Addable ad2=(int a,int b)->(a+b); System.out.println(ad2.add(200,200)); } }
40 400
Using expressions, Java SE 8 provides a valuable addition through the lambda expression feature. Expressing method interfaces in a clear and concise way has become a piece of cake. Iterating, filtering, and extracting data are among the many practical uses provided by collection libraries. Lambda expressions have been widely used to implement functional interfaces, and they can greatly reduce the amount of code. An excellent feature of lambda expressions is the ability to give implementations without redundantly redefining methods. In this space, writing gives implementation code form. The compiler does not create a .class file because functions are treated as Java lambda expressions.
The above is the detailed content of Concurrent programming methods using Lambda expressions. For more information, please follow other related articles on the PHP Chinese website!