Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Lambda Expressions in Java

1. Introduction

Lambda expressions were introduced in Java 8 to provide a clear and concise way to represent one method interfaces using an expression. They are a key feature of functional programming in Java.

2. Definition

A lambda expression is essentially an anonymous function that can be used to implement functional interfaces. A functional interface is an interface that contains only one abstract method.

3. Syntax

3.1 Basic Syntax

The basic syntax of a lambda expression is:

(parameters) -> expression

3.2 Example


interface Greeting {
    void sayHello();
}

public class Example {
    public static void main(String[] args) {
        Greeting greeting = () -> System.out.println("Hello, World!");
        greeting.sayHello();
    }
}
                

4. Usage

4.1 Passing Lambda Expressions

Lambda expressions are often used in functional programming concepts, particularly with the Java Collections Framework:


import java.util.Arrays;
import java.util.List;

public class LambdaExample {
    public static void main(String[] args) {
        List names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(name -> System.out.println(name));
    }
}
                

4.2 Using with Functional Interfaces

Common functional interfaces include:

  • Runnable
  • Callable
  • Comparator
  • Consumer
  • Supplier
  • Function

5. Best Practices

  • Use descriptive names for lambda parameters.
  • Prefer using method references when possible for cleaner code.
  • Limit the use of stateful lambda expressions to avoid side effects.
  • Keep lambda expressions simple and concise.

6. FAQ

What is a functional interface?

A functional interface is an interface with a single abstract method. They can have multiple default or static methods.

Can lambda expressions be used for multiple methods?

No, lambda expressions can only implement a single abstract method since they are tied to functional interfaces.

How do lambda expressions improve code readability?

They reduce boilerplate code and provide a more expressive syntax for operations like filtering and mapping.