Java的Stream API和Optional
因为在公司举办了专为Java初学者准备的学习会,并学习了StreamAPI和Optional,所以我写了一篇文章。
流 API
Stream API是用于在集合的元素上进行一系列高效简洁操作的API。它具有以下特点。
-
- 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类的一些基本用法。
-
- 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);
}
}