Loading lessons...
Java Lambda Expressions
Java Lambda Expressions
A lambda expression is a short block of code that takes parameters and returns a value. It is a compact way to write methods, often used with functional interfaces.
Simple lambda
import java.util.ArrayList;
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.forEach((n) -> { System.out.println(n); });
Lambda syntax
A lambda has parameters, an arrow ->, and a body:
parameter -> expression
(parameter1, parameter2) -> expression
// Use a lambda in the createArrayList method
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(1);
nums.add(2);
nums.forEach((n) -> { System.out.println(n); });
Using lambdas with interfaces
Lambdas implement functional interfaces (interfaces with one abstract method):
interface StringFunction {
String run(String str);
}
public class Main {
public static void main(String[] args) {
StringFunction exclaim = (s) -> s + "!";
StringFunction ask = (s) -> s + "?";
System.out.println(exclaim.run("Hello"));
System.out.println(ask.run("Hello"));
}
}
Why use lambdas
- Write less code than anonymous classes.
- Pass behavior as data.
- Make code easier to read.
TL;DR
- Lambdas are short anonymous methods.
- Syntax:
(params) -> expression. - They implement functional interfaces.