Lambda Expressions and Functional Interfaces

Demonstrates lambda expressions with built-in functional interfaces like Predicate, Function, Consumer, and Supplier for concise and readable code.

JavaData Fetching

Code

snippet
import java.util.function.*;
import java.util.List;

public class LambdaExpressions {

    public static void main(String[] args) {
        Predicate<String> isLong = s -> s.length() > 5;
        Function<String, String> toUpper = String::toUpperCase;
        Consumer<String> printer = System.out::println;
        Supplier<String> defaultName = () -> "Anonymous";

        List<String> names = List.of("Alice", "Bob", "Charlie", "Dave");

        names.stream()
            .filter(isLong)
            .map(toUpper)
            .forEach(printer);

        BiFunction<Integer, Integer, Integer> add = Integer::sum;
        int result = add.apply(10, 20);
        System.out.println("Sum: " + result);

        UnaryOperator<String> exclaim = s -> s + "!";
        System.out.println(exclaim.apply("Hello"));

        System.out.println("Default: " + defaultName.get());
    }
}