java 8中.stream()的默认实现是什么? [英] What is the default implementation of .stream() in java 8?
问题描述
它只是说:
返回以此集合为源的顺序Stream。
Returns a sequential Stream with this collection as its source.
当spliterator()方法不能
返回一个IMMUTABLE,CONCURRENT或后期绑定的spliterator时,应该重写此方法。
(有关详细信息,请参阅spliterator()。)
This method should be overridden when the spliterator() method cannot return a spliterator that is IMMUTABLE, CONCURRENT, or late-binding. (See spliterator() for details.)
但我找不到任何显示其创建和返回方式的代码新流。
But I can't find any code showing how it creates and returns the new Stream.
double average = roster
.stream()
.filter(p -> p.getGender() == Person.Sex.MALE)
.mapToInt(Person::getAge)`enter code here`
.average()
.getAsDouble();
-
名册
是一个列表< Person>
实例> ArrayList< Person>
-
人
是一个代表一个人的简单类 roster
is aList<Person>
instance ofArrayList<Person>
Person
is a simple class that represents a person
推荐答案
基本上整个流实现都是私有的,所以你不会在docs.oracle.com上看到任何东西。
Basically the whole stream implementation is package private so you won't get anything showing up at docs.oracle.com.
但是看一看这里的源代码: http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/stream
But take a look a look at the source code here: http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/stream
您可以从StreamSupport开始,大多数类都使用它来创建各种流。
You can start with StreamSupport which most classes uses to create the various streams.
这篇关于java 8中.stream()的默认实现是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!