Java 9 中 Stream API 添加了哪些新功能?
javaobject oriented programmingprogramming更新于 2025/7/15 0:44:17
在 Java 9 中,Oracle Corporation 为 Stream API 添加了四个有用的新方法。这些方法是 iterate()、ofNullable()、takeWhile() 和 dropWhile()。
iterate()
iterate() 可用作传统 for 循环 的流版本替代品。此方法通过添加另一个参数进行了改进,即 Predicate 接口,它允许我们根据使用 Predicate 接口定义的条件停止这些无穷无尽的数字。
示例
import java.util.stream.Stream;
public class StreamIterateMethodTest {
public static void main(String[] args) {
Stream.iterate(1, i -> i < 5, i -> i + 1).forEach(System.out::println); // iterate()
}
}
输出
1 2 3 4
ofNullable()
如果元素不为空,则 ofNullable() 方法返回元素的流对象。否则,该方法返回一个空流。
示例
import java.util.stream.Stream;
public class StreamOfNullableMethodTest {
public static void main(String[] args) {
String str = "TutorialsPoint";
Stream.ofNullable(str).forEach(System.out::println); // ofNullable() method
}
}
输出
TutorialsPoint
takeWhile()
传递给 takeWhile() 方法的参数是 Predicate 接口。此方法从左到右获取流对象的元素,直到 Predicate 对象的条件不再满足。
示例
import java.util.stream.Stream;
public class StreamTakeWhileMethodTest {
public static void main(String[] args) {
Stream.of(1, 2, 3, 4, 5)
.takeWhile(i -> i < 5) // takeWhile() method
.forEach(System.out::println);
}
}
输出
1 2 3 4
dropWhile()
传递给 dropWhile() 方法的参数也是一个 Predicate 接口。它与 takeWhile() 方法相反。此方法从左到右传递流对象中的每个元素,并忽略所有满足条件的元素。一旦条件不再满足,它将返回所有剩余元素。
示例
import java.util.stream.Stream;
public class StreamDropWhileMethodTest {
public static void main(String[] args) {
Stream.of(3, 2, 1, 4, 6, 7, 8, 9, 10)
.dropWhile(i -> i < 5) // dropWhile() method
.forEach(System.out::println);
}
}
输出
6 7 8 9 10
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

