Loading lessons...
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
java
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:
text
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):
java
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.