Streams
Streams Java 8 introduces a new streaming metaphor to support functional programming. A stream is a sequence of elements that does not save the elements or modify the original source. Functional programming in Java often involves generating a stream from some source of data, passing the elements through a series of intermediate operations (called a pipeline ), and completing the process with a terminal expression Streams can only be used once. After a stream has passed through zero or more intermediate operations and reached a terminal operation, it is finished. To process the values again, you need to make a new stream. Streams are also lazy . A stream will only process as much data as is necessary to reach the terminal condition. Recipe 3.13 shows this in action. 3.1 Creating Streams Problem You want to create a stream from a source of data. Solution Use the static factory methods in the Stream interface, or the...