Building Streams – Streams
16.4 Building Streams A stream must have a data source. In this section we will explore how streams can be created from various data sources: collections, arrays, specified values, generator functions, strings, and I/O channels, among others. Aspects to Consider When Creating Streams When creating a stream from a data source, certain aspects to consider […]
Mapping a Numeric Stream to an Object Stream – Streams
Mapping a Numeric Stream to an Object Stream The mapToObj() method defined by the numeric stream interfaces transforms a numeric stream to an object stream of type R, and the boxed() method transforms a numeric stream to an object stream of its wrapper class. The query below prints the squares of numbers in a given […]
Converting between Stream Types – Streams
Converting between Stream Types Table 16.2 provides a summary of interoperability between stream types—that is, transforming between different stream types. Where necessary, the methods are shown with the name of the built-in functional interface required as a parameter. Selecting a naming convention for method names makes it easy to select the right method for transforming […]
Summary of Intermediate Stream Operations – Streams
Summary of Intermediate Stream Operations Table 16.3 summarizes selected aspects of the intermediate operations. Table 16.3 Selected Aspects of Intermediate Stream Operations Intermediate operation Stateful/Stateless Can change stream size Can change stream type Encounter order distinct (p. 915) Stateful Yes No Unchanged dropWhile (p. 913) Stateful Yes No Unchanged filter (p. 910) Stateless Yes No […]
Mapping between Numeric Streams – Streams
Mapping between Numeric Streams In contrast to the methods in the Stream<T> interface, the map() and the flatMap() methods of the numeric stream interfaces transform a numeric stream to a numeric stream of the same primitive type; that is, they do not change the type of the numeric stream. The map() operation in the stream […]
The Optional Class – Streams
16.6 The Optional Class When a method returns a null value, it is not always clear whether the null value represents a valid value or the absence of a value. Methods that can return null values invariably force their callers to check the returned value explicitly in order to avoid a NullPointerException before using the […]
Execution Mode of a Stream – Streams
Execution Mode of a Stream The two methods parallel() and sequential() are intermediate operations that can be used to set the execution mode of a stream—that is, whether it will execute sequentially or in parallel. Only the Collection.parallelStream() method creates a parallel stream from a collection, so the default mode of execution for most streams […]
Filtering – Streams
Filtering Filters are stream operations that select elements based on some criteria, usually specified as a predicate. This section discusses different ways of filtering elements, selecting unique elements, skipping elements at the head of a stream, and truncating a stream. The following methods are defined in the Stream<T> interface, and analogous methods are also defined […]
Using Generator Functions to Build Infinite Streams – Streams
Using Generator Functions to Build Infinite Streams The generate() and iterate() methods of the core stream interfaces can be used to create infinite sequential streams that are unordered or ordered, respectively. Infinite streams need to be truncated explicitly in order for the terminal operation to complete execution, or the operation will not terminate. Some stateful […]
Lazy Execution – Streams
Lazy Execution A stream pipeline does not execute until a terminal operation is invoked. In other words, its intermediate operations do not start processing until their results are needed by the terminal operation. Intermediate operations are thus lazy, in contrast to the terminal operation, which is eager and executes when it is invoked. An intermediate […]
Archives
- July 2024
- June 2024
- May 2024
- March 2024
- February 2024
- January 2024
- December 2023
- October 2023
- September 2023
- May 2023
- March 2023
- January 2023
- December 2022
- November 2022
- October 2022
- September 2022
- August 2022
- July 2022
- April 2022
- March 2022
- November 2021
- October 2021
- September 2021
- July 2021
- June 2021
- March 2021
- February 2021
Calendar
M | T | W | T | F | S | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |