Thinking in Streams
summary
Streams gain true custom intermediate operators with JEP 485, letting code extend beyond collectors and enabling stateful behaviours like distinctBy and time-windowing via windowSliding. Built-in mapConcurrent uses virtual threads to avoid the common-pool bottleneck and scales many short IO tasks to hundreds of concurrent jobs. Watch for pitfalls: unchecked exceptions abort pipelines, parallel streams may spawn memory-heavy buffering and pipeline optimizations can skip work depending on terminal ops and spliterator size information.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:49Java streams workings and limits
- 5:14Examples and collectors
- 10:59When streams are worth it
- 12:48Common pitfalls
- 17:39Optimization issues
- 22:04Java 24 stream gutters
- 24:54Fixing parallel streams
- 28:30Custom intermediate operators
- 31:45Distinct by functionality
- 36:05Sliding windows for anomalies
- 37:57Learning stream gutters
- 39:22Best practices
- 43:01Q&A
related talks
44mThinking in Streams
47mStreams – Below the Surface
45mStream Gatherers
40mStream Gathers - The biggest change to Java Streams since 10 years
46mJEP 461: Breathing New Life into Java Stream API
51mHunting with Stream Gatherers
51mIf Streams Are So Great, Let’s Use Them Everywhere... Right??
43mStream Gatherers - Deep Dive with the Expert
