What you’ll learn in this training
This three-day combined training merges the content of two individual courses – Java Streams Basics and Java Streams Advanced – and gives you a practical and in-depth understanding of the Java Stream API: from the basics and best practices to advanced techniques like Custom Collectors and Stream Gatherers.
You could also learn Java Streams in two separate trainings – but the combined package is more efficient: three compact days instead of four, a seamless transition from basics to advanced, and a learning arc that builds on itself without interruption.
On the first day, you’ll learn the functional programming fundamentals and the structure of stream pipelines:
- Role of intermediate and terminal operations
- Differences from collections
- Benefits of lazy evaluation
- Stream creation using collections, arrays, files, and ranges
All of this is directly applied in hands-on exercises – the perfect foundation for the advanced topics on days two and three.
On days two and three, the focus shifts to efficiency, extensibility, and modern techniques:
- Developing custom collectors (including characteristics and finisher)
- Analyzing and optimizing stream pipelines
- Writing custom spliterators and understanding their performance benefits
- Infinite streams, directory walking, and file streams
- Stream Gatherers API (since Java 22, finalized in Java 24): using built-ins, writing custom gatherers, managing state
You’ll gain a deep understanding of how streams work internally – and you’ll be equipped to confidently decide when and how to use streams effectively – and when it’s better not to.
The course concludes with a comprehensive final project, where you’ll model a real-world data processing scenario using streams – from requirements through stream design to a performant solution. We’ll review your results together and discuss best practices for production-ready stream code.
👉 Just looking for the basics? Check out Java Streams Basics – Practical Fundamentals for Beginners.
👉 Only want the advanced topics? Then Java Streams Advanced – Gatherers, Spliterators & More might be the better fit.
Target audience
This course is designed for Java developers who want to learn how to use the Streams API efficiently and elegantly – from the ground up – and then immediately take the next step: focusing on performance, extensibility, and modern features like gatherers or custom spliterators.
It’s ideal for anyone seeking a comprehensive knowledge of Java Streams in a short time – for example, during a technology upgrade, relaunch, or refactoring project.