Java 8 无法创建对stream&;的引用;它’;不可能多次重复使用同一个流
阅读关于Java8流的文章,发现 Java流是可消费的,因此无法创建引用 以供将来使用。因为数据是按需提供的,所以不是 可以多次重复使用同一个流 同时在同一篇文章中Java 8 无法创建对stream&;的引用;它’;不可能多次重复使用同一个流,java-8,java-stream,Java 8,Java Stream,阅读关于Java8流的文章,发现 Java流是可消费的,因此无法创建引用 以供将来使用。因为数据是按需提供的,所以不是 可以多次重复使用同一个流 同时在同一篇文章中 //sequential stream Stream<Integer> sequentialStream = myList.stream(); //parallel stream Stream<Integer> parallelStream = myList.parallelStream(); //顺序流
//sequential stream
Stream<Integer> sequentialStream = myList.stream();
//parallel stream
Stream<Integer> parallelStream = myList.parallelStream();
//顺序流
Stream sequentialStream=myList.Stream();
//平行流
Stream parallelStream=myList.parallelStream();
“无法创建对流的引用以供将来使用”的含义是什么?sequentialStream
和parallelStream
不是对流的引用吗
“不可能多次重复使用同一个流”是什么意思?它的意思是每次需要对一个流进行操作时,都必须创建一个新的流 因此,例如,您不能有如下内容:
Class Person {
private Stream<String> phoneNumbers;
Stream<String> getPhoneNumbers() {
return phoneNumbers;
}
}
班级人员{
专用流电话号码;
流getPhoneNumber(){
返回电话号码;
}
}
只要在你喜欢的时候重用这一条流就行了。相反,你必须有类似的东西
Class Person {
private List<String> phoneNumbers;
Stream<String> getPhoneNumbers() {
return phoneNumbers.stream(); // make a NEW stream over the same data
}
}
班级人员{
私人电话号码列表;
流getPhoneNumber(){
返回phoneNumbers.stream();//在同一数据上创建新流
}
}
你包含的代码就是这么做的。它在同一数据上生成两个不同的流文章错误地说,没有办法为将来的使用创建对流的引用:您可以创建一个供将来使用的引用。你问题中的变量就是例子。例如,这些引用可以传递给异步使用者,因此在将来会被很好地使用。即使在方法的后面几行对流变量进行操作仍然是“将来的用法”,因为它发生在获得引用之后的某个时间。重要的短语是最后一个短语“不可能多次重用同一个流”。在这个前提下阅读其余部分。