Java8 中 22 个 lambda 表达式用法的超简单入门示例,不会你就落伍了

2024-12-31 00:10:48   小编

Java8 中 22 个 lambda 表达式用法的超简单入门示例,不会你就落伍了

在 Java8 中,lambda 表达式的引入为编程带来了极大的便利和灵活性。接下来,让我们一起通过 22 个超简单的入门示例来深入了解 lambda 表达式的用法。

示例 1:简单的无参数 lambda 表达式

Runnable runnable = () -> System.out.println("Hello, Lambda!");

示例 2:有一个参数的 lambda 表达式

Consumer<String> consumer = (str) -> System.out.println("Received: " + str);

示例 3:多个参数的 lambda 表达式

BiConsumer<String, Integer> biConsumer = (str, num) -> System.out.println(str + " - " + num);

示例 4:lambda 表达式中的返回值

Supplier<String> supplier = () -> "Hello from Supplier!";

示例 5:对集合进行遍历

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name));

示例 6:过滤集合中的元素

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
      .filter(num -> num % 2 == 0)
      .forEach(System.out::println);

示例 7:映射操作

List<String> words = Arrays.asList("apple", "banana", "cherry");
words.stream()
    .map(word -> word.toUpperCase())
    .forEach(System.out::println);

示例 8:归约操作

List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
int sum = nums.stream()
             .reduce(0, (a, b) -> a + b);
System.out.println("Sum: " + sum);

示例 9:比较器的 lambda 表达式

List<String> fruits = Arrays.asList("apple", "banana", "cherry");
fruits.sort((s1, s2) -> s1.compareTo(s2));

示例 10:方法引用

List<String> names = Arrays.asList("John", "Jane", "Doe");
names.forEach(System.out::println);

示例 11:构造函数引用

Supplier<Person> personSupplier = Person::new;

示例 12:静态方法引用

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
      .map(Math::sqrt)
      .forEach(System.out::println);

示例 13:处理异常的 lambda 表达式

Supplier<String> supplier = () -> {
    try {
        // 可能抛出异常的代码
        return "Success";
    } catch (Exception e) {
        return "Error";
    }
};

示例 14:并行流中的 lambda 表达式

List<Integer> largeNumbers = Arrays.asList(100000, 200000, 300000);
largeNumbers.parallelStream()
           .mapToInt(num -> num)
           .forEach(System.out::println);

示例 15:使用 lambda 表达式实现自定义函数接口

interface CustomFunction {
    int operate(int a, int b);
}

CustomFunction customFunction = (a, b) -> a + b;

示例 16:在多线程中使用 lambda 表达式

new Thread(() -> System.out.println("Thread is running")).start();

示例 17:lambda 表达式与 Optional 类结合

Optional<String> optional = Optional.ofNullable("Value");
optional.ifPresent(value -> System.out.println("Present: " + value));

示例 18:lambda 表达式与 Stream 的 flatMap 操作

List<List<String>> nestedLists = Arrays.asList(
        Arrays.asList("a", "b"),
        Arrays.asList("c", "d")
);
nestedLists.stream()
          .flatMap(Collection::stream)
          .forEach(System.out::println);

示例 19:lambda 表达式与 Predicate 接口

Predicate<String> predicate = str -> str.length() > 5;

示例 20:lambda 表达式与 Function 接口

Function<String, Integer> function = str -> str.length();

示例 21:使用 lambda 表达式实现策略模式

interface Strategy {
    void execute();
}

Strategy strategy = () -> System.out.println("Executing strategy");

示例 22:lambda 表达式与回调函数

interface Callback {
    void onComplete();
}

Callback callback = () -> System.out.println("Callback completed");

通过以上 22 个简单的示例,相信您对 Java8 中的 lambda 表达式有了更清晰的认识和理解。赶快将其运用到您的项目中,提升代码的简洁性和可读性吧!

TAGS: Java 编程 技术入门 Lambda 表达式 Java8

欢迎使用万千站长工具!

Welcome to www.zzTool.com