Java 8新特性:Optional和Stream操作实例
在Java 8中,引入了两个重要的新特性:Optional和Stream。
- Optional: 这是一种表示可能存在的值的容器。如果一个变量可能存在但不一定存在,那么使用Optional类型就非常适合。
例如:
String name = "John Doe";
Optional<String> optionalName = Optional.ofNullable(name);
- Stream: Stream API是Java 8中引入的一种高效的数据处理方式。它可以将集合、数组等数据源转换为一个可以连续操作的序列(stream)。
例如,我们可以使用Stream来过滤和分组数据:
List<String> names = Arrays.asList("John Doe", "Jane Smith", "Alice Johnson");
Optional<List<String>> optionalGroupedNames = names.stream()
.filter(name -> !name.startsWith("A"))) // 过滤掉以"A"开头的名称
.collect(Collectors.groupingBy(String::length))); // 按长度分组
if (optionalGroupedNames.isPresent()) {
Map<Integer, List<String>>> groupedNamesByLength = optionalGroupedNames.get();
for (Map.Entry<Integer, List<String>>> entry : groupedNamesByLength.entrySet()) {
System.out.println("Length: " + entry.getKey() + ", Names: " + entry.getValue()));
}
}
这样,Java 8通过Optional和Stream这两个特性,为开发者提供了一种更高效、更具可读性的编程方式。
还没有评论,来说两句吧...