Skip to content

Java Streams Basics – Practical Foundations for Beginners

Many Java developers still write loops – not because streams are inferior, but because they were never properly explained. flatMap(), Collectors, reduce(), and Lazy Evaluation: these concepts make data processing in Java clearer, shorter, and more maintainable.

In just one day, this course brings your team up to the level the Java Streams API makes possible – clearly explained and directly applicable.

Request now – no obligation
1 day
Individual date
On-site or online
German / English
Customizable content
Certificate of completion

What you’ll learn in this training

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.

💡 Not sure yet whether streams are the right fit for you? My article Stream Gatherers in Java gives you a taste of what the Stream API can do.

Target audience

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.

Agenda

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.

Functional Programming in Java:

  • Lambda expressions: syntax, types, and usage
  • Functional interfaces (Consumer, Supplier, Function, Predicate, etc.)
  • Method references: static, instance, constructor references
  • Hands-on exercises: Lambda expressions vs. anonymous classes

Stream Basics:

  • What is a stream? Conceptual differences from collections
  • Anatomy of a stream pipeline: Source → Intermediate Operations → Terminal Operations
  • Lazy evaluation and its implications
  • Creating streams: from collections, arrays, files, ranges
  • Primitive streams: IntStream, LongStream, DoubleStream
  • Hands-on exercises: First stream pipelines with primitive streams

Intermediate Operations Deep Dive:

  • Transformations with map(), flatMap(), filter()
  • Selection and sorting: distinct(), sorted(), limit(), skip()
  • Debugging with peek() – used correctly
  • Chaining operations and performance aspects
  • Hands-on exercises: More complex data processing

Terminal Operations:

  • collect() – the most versatile terminal operator
  • Built-in collectors: toList(), toSet(), toMap()
  • forEach(), forEachOrdered()
  • reduce() for aggregations
  • Finding operations: findFirst(), findAny()
  • Matching operations: allMatch(), anyMatch(), noneMatch()
  • Hands-on exercises: Terminal operations with standard collectors

Sounds like the right course for your team?

Request now – no obligation

Why learn with me?

I’ve been working with Java for over 20 years – as a developer, CTO, trainer, author, and speaker.

In that time, I’ve helped companies modernize complex Java systems, write performant code, and develop their teams sustainably.

With HappyCoders.eu, I’ve built one of the most widely read Java blogs in the German-speaking world, and I regularly speak at conferences and user groups.

My goal: to teach complex topics in a way that is understandable, practical, and immediately applicable.

Rated 4.97 out of 5 on ProvenExpert

More about me

Any questions?

Participation & Booking

Can individuals book this training?

This training can only be booked for teams. If you’d like to attend as an individual, I offer two courses (in German) through ppedv:

How many participants are possible?

I recommend a maximum of 12 participants per training – that way I can give everyone individual attention. There is no minimum: I charge per training, not per person.

How does booking work?

The easiest way is the request form or an email to schulung@happycoders.eu. Right after submitting, you can book a video call via Calendly, where we discuss the details. You’ll then receive a concrete offer from me.

Prerequisites

What prior Java experience is required?

You should bring basic Java knowledge – that is, classes, interfaces, collections, and generics. Experience with lambda expressions or functional programming is not a must: those are the first topics we’ll work through together.

What technical requirements do we need?

All participants need an up-to-date IDE with at least Java 17 – I use IntelliJ IDEA myself. Java 17 or later should also be installed in the terminal, as we’ll run some of the exercises there.

Schedule & Content

What does a training day look like?

Each day has six hours of net training time – usually with two short breaks and a longer lunch break in between. We align the exact schedule with your working hours – that’s flexible.

How much time is theory, how much is practice?

About half theory, half practice: a short theory phase is followed directly by applying it to code – with examples from real projects. Listening alone doesn’t help much; the knowledge has to be used immediately for it to stick.

Can we adjust or prioritize individual agenda topics?

Yes, that’s no problem. Dropping topics or weighting them differently – as long as I don’t have to restructure the training materials, there are no extra costs.

If you need more extensive changes – for example, combining content from different courses or adding entirely new topics – I’ll be happy to prepare an individual offer.

What exactly does “customizable content” mean?

Within the existing agenda, the weighting can be adjusted: shortening topics, setting priorities, changing the order. That’s free of charge.

Beyond that, more far-reaching adjustments are possible – such as combining content from different courses or completely new topic blocks. This involves extra effort, so I’ll prepare an individual offer for it.

Format & Materials

Which platform do we use for virtual training?

We usually use Zoom. If you prefer your own platform – for example, Microsoft Teams or Google Meet – I’m happy to work with that. Just let me know in advance.

Do participants receive materials to keep?

Yes. Before the training, you’ll receive the exercises as a Git repository so you can get started right away. After the training, you’ll also receive the slides – including all solutions to the exercises.

Prices & Costs

What do the travel expenses include?

Travel expenses are charged as a flat rate – depending on the training location and the number of overnight stays required. The exact amount is part of the individual offer I’ll send you.

Are there discounts for booking multiple trainings?

Yes. For multiple booked trainings or follow-up bookings, I can offer a volume discount. We’ll discuss this in the video call, and I’ll include it in the offer.

Is this a good fit for your team?

Just write to me – I usually reply within 24 hours.
Or book a free video call right away, and we’ll discuss everything important.

Request now – no obligation