Stream represents a sequence of values. Stream API, introduced in JAVA 8 (JSR-355 [1]) enables declarative specification of computation on data. It may also interesting to note that it imposes no restriction on the data source.
Following are the important facts:
- Stream != Collection
- It is bound to a data source which can be {collection, array, IO, iterator}
- Stream does not hold any data
- It is simply an intermediate data
- Stream can’t modify its source
- Good for parallelism.
- Stream can be infinite.
In this post, we only discuss how to construct a Stream object.
A Stream object can be constructed in the following manner.
Collection source = /*a collection that will be used as a source of Stream*/
source.stream();
Alternatively, Stream contains several builders, as listed below.
- IntStream:
Stream.of(1,3,4) - EmptyStream:
Stream.empty() - InfiniteStream:
Stream.iterate(1, n-> n+10)
In the next post, we shall discuss more on how we can use a Stream to specify data transformation in a declarative manner.
