In this one-day course, you'll learn the fundamentals of the Java Streams API – with clear explanations, practical examples, and lots of hands-on exercises.
You'll discover how Streams differ from traditional Collections – and why they’re such a powerful tool for modern data processing in Java.
Through practical scenarios, we'll explore the structure of a stream pipeline – from the data source, through intermediate operations like map(), filter(), and flatMap(), to final processing with collect() and other terminal operations.
A special focus is placed on understanding the underlying concepts: What happens when? What actually gets executed – and what doesn't? What exactly does Lazy Evaluation mean? And where are the typical pitfalls?
By the end of the day, you’ll be able to confidently use streams, express complex data operations elegantly, and apply functional programming effectively in your projects.
👉 Already familiar with streams and ready to go deeper? Check out Java Streams Advanced – Gatherers, Spliterators & More.
👉 Want to cover the full range of the Stream API in one go? Then the combined course Java Streams Basics + Advanced is ideal for you.
This course is designed for Java developers who want to systematically learn streams and functional programming from the ground up.
Whether you’ve avoided streams, only scratched the surface, or want to refresh your knowledge – this course will help you build a solid foundation for productive use in real-world projects.
If you’ve preferred traditional loops because streams seemed too abstract: after this course, you’ll know when and how to use them effectively.
The course alternates between short theory segments, hands-on code examples, and interactive exercises – so you learn the fundamentals of the Stream API in a well-structured and practical way.
Consumer
, Supplier
, Function
, Predicate
, etc.)IntStream
, LongStream
, DoubleStream
map()
, flatMap()
, filter()
distinct()
, sorted()
, limit()
, skip()
peek()
– used correctlycollect()
– the most versatile terminal operatortoList()
, toSet()
, toMap()
forEach()
, forEachOrdered()
reduce()
for aggregationsfindFirst()
, findAny()
allMatch()
, anyMatch()
, noneMatch()
I’m a Java expert with over 20 years of experience – as a developer, architect, CTO, performance coach, and trainer.
I’ve designed enterprise-scale systems for companies like 1&1, IONOS, and ICE Services, modernized legacy apps, and helped teams build robust, maintainable, and high-performance Java software.
With HappyCoders.eu, I’ve built one of the most widely read Java blogs in the German-speaking world. I speak at conferences and Java User Groups – and often receive praise for making complex technical topics easy to understand.
What you’ll get from my courses:
I don’t just teach features – I show you how to develop better software with a deep understanding of Java.