Lesson 45 +10 XP

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.