Java的Stream API和Optional

因为在公司举办了专为Java初学者准备的学习会,并学习了StreamAPI和Optional,所以我写了一篇文章。

流 API

Stream API是用于在集合的元素上进行一系列高效简洁操作的API。它具有以下特点。

    1. Lambda表达式和函数式接口:Stream API利用了Lambda表达式和函数式接口。

中间操作和终端操作:Stream的操作分为中间操作(进行转换和过滤)和终端操作(生成结果)两种类型。

管道处理:Stream的操作可以连续地作为管道处理。

以下是使用流API的简单代码示例。

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

public class StreamExample {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry");

        list.stream() // Streamの生成
            .filter(s -> s.length() > 5) // 中間操作: 文字数が5より大きい要素をフィルタリング
            .map(String::toUpperCase) // 中間操作: 文字列を大文字に変換
            .forEach(System.out::println); // 終端操作: 各要素を出力
    }
}

自由选择

Optional类被设计为返回可能返回null的方法,代替返回Optional实例。这样可以避免出现空指针异常。

以下是Optional类的一些基本用法。

    1. ofNullable: 包装可能:封装可能的空值。

ifPresent: 指定在值存在时执行的操作。

orElse: 指定在值不存在时返回的默认值。

map: 指定在值存在时应用的函数。

以下是Optional基本使用方法的示例。

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        Optional<String> optional = Optional.ofNullable("Hello, World!");

        optional.ifPresent(System.out::println); // 値が存在するため、"Hello, World!"を出力

        String value = optional.orElse("Default value"); // 値が存在するため、"Hello, World!"を返します
        System.out.println(value);

        Optional<String> emptyOptional = Optional.empty();

        emptyOptional.ifPresent(System.out::println); // 値が存在しないため、何も出力されません

        String defaultValue = emptyOptional.orElse("Default value"); // 値が存在しないため、"Default value"を返します
        System.out.println(defaultValue);
    }
}

广告
将在 10 秒后关闭
bannerAds