如何在 Java 9 中实现 Stream API 的方法?
javaobject oriented programmingprogramming更新于 2025/10/13 9:48:17
Stream API 提供了许多内置功能 ,可帮助使用流管道对集合执行操作。该 API 是声明式编程 ,可使代码精确且不易出错。在 Java 9 中,Stream API 中添加了一些有用的方法。
- Stream.iterate():此方法可用作传统 for 循环 的流版本替代品。
- Stream.takeWhile():此方法可用于在满足条件时获取值的 while 循环中。
- Stream.dropWhile():此方法可用于在满足条件时删除值的 while 循环中。
在下面的示例中,我们可以实现 Stream 的静态方法:iterate()、takeWhile() 和 dropWhile() 方法API.
示例
import java.util.Arrays;
import java.util.Iterator;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamAPITest {
public static void main(String args[]) {
String[] sortedNames = {"Adithya", "Bharath", "Charan", "Dinesh", "Raja", "Ravi", "Zaheer"};
System.out.println("[Traditional for loop] Indexes of names starting with R = ");
for(int i = 0; i < sortedNames.length; i++) {
if(sortedNames[i].startsWith("R")) {
System.out.println(i);
}
}
System.out.println("[Stream.iterate] Indexes of names starting with R = ");
Stream.iterate(0, i -> i < sortedNames.length, i -> ++i).filter(i -> sortedNames[i].startsWith("R")).forEach(System.out::println);
String namesAtoC = Arrays.stream(sortedNames).takeWhile(n -> n.charAt(0) <= 'C')
.collect(Collectors.joining(","));
String namesDtoZ = Arrays.stream(sortedNames).dropWhile(n -> n.charAt(0) <= 'C')
.collect(Collectors.joining(","));
System.out.println("Names A to C = " + namesAtoC);
System.out.println("Names D to Z = " + namesDtoZ);
}
}
输出
[Traditional for loop] Indexes of names starting with R = 4 5 [Stream.iterate] Indexes of names starting with R = 4 5 Names A to C = Adithya,Bharath,Charan Names D to Z = Dinesh,Raja,Ravi,Zaheer
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

