Skip to content
KnowledgeCity

Advanced Java: Streams

Learn to utilize your functional programming knowledge by building pipelines with streams
Preview the first lesson free — get full access to all 3 lessons.
Course: On-Demand
Advanced Provider Scott Stanlick  3 Lessons ·  18m  in Arabic, German, English, Spanish, French, Portuguese, Chinese 

Course Description

In these lessons, we’ll look at processing streams of objects, commonly referred to as their elements. A stream can be bounded in size or infinite with respect to its number of elements, and can be obtained from many sources—or even generators available in the Java programming language. We’ll go over how to deal with very large streams using parallel processing, whereby all of the available cores on your machine participate in stream processing.

You’ll learn how easy it is to combine your knowledge of the collection framework, functional programming, and lambda expressions to create declarative pipelines, able to tackle the myriad problems faced daily in software development. From filtering elements from a stream to mapping the elements to a different type altogether, stream processing can make problem-solving a snap. We’ll wrap up by applying limits, statistics, ordering, enhancing, and reducing a stream to whatever it is that we ultimately need to produce results for clients.

What You'll Learn

  • Describe what a stream is and where streams can be found or obtained from
  • Construct logical, declarative pipelines using lambda expressions and pipeline and terminal points
  • Apply filtering, mapping, grouping, and reducing operations to stream elements
  • Produce statistics from a stream and process ordering and limits
  • Use parallel processing to handle very large streams across all available cores
  • Combine the collection framework, functional programming, and lambda expressions to solve problems

Key Takeaways

  • A stream processes a sequence of objects (elements) and can be either bounded in size or infinite, obtained from many sources or generators in Java.
  • Stream processing supports parallel processing, allowing all available cores on a machine to participate when handling very large streams.
  • Declarative pipelines are built by combining the collection framework, functional programming, and lambda expressions.
  • Common stream operations include filtering elements, mapping elements to a different type, grouping, and reducing.
  • Streams can be refined further by applying limits, statistics, ordering, enhancing, and reducing to produce final results.

Frequently Asked Questions

What does this course cover?

It covers processing streams of objects in Java, including building pipelines with pipeline and terminal points; filtering, mapping, grouping, and reducing elements; and working with order, statistics, and limits. It also covers using parallel processing for very large streams.

What skills will I gain from this course?

The course focuses on application streaming, Java 8, Java 11, stream processors, and stream processing in the Java programming language.

Does this course cover handling very large streams?

Yes. It explains how to deal with very large streams using parallel processing, whereby all of the available cores on your machine participate in stream processing.

What knowledge does the course build on?

It builds on and combines your knowledge of the collection framework, functional programming, and lambda expressions to create declarative pipelines.

What topics are taught in the lessons?

The lessons cover Pipeline and Terminal Points; Filtering, Mapping, Grouping, and Reducing; and Order, Statistics, and Limits.