1.1 From Iterating to Stream Operations1.2 Stream Creation1.3 The filter, map, and flatMap Methods1.4 Extracting Substreams and Combining Streams1.5 Other Stream Transformations1.6 Simple Reductions1.7 The Optional Type1.7.1 Getting an Optional Value1.7.2 Consuming an Optional Value1.7.3 Pipelining Optional Values1.7.4 How Not to Work with Optional Values1.7.5 Creating Optional Values1.7.6 Composing Optional Value Functions with flatMap1.7.7 Turning an Optional into a Stream1.8 Collecting Results1.9 Collecting into Maps1.10 Grouping and Partitioning1.11 Downstream Collectors1.12 Reduction Operations1.13 Primitive Type Streams1.14 Parallel Streams