Mastering Lambdas (lambda expressions) and Streams in Java
Functional Interfaces – what they are and their relationship to lambda expressions.
Lambdas – anonymous inner class syntax versus lambda expressions.
Functional Interfaces from the API – sample code explaining Predicate/BiPredicate, Consumer/BiConsumer
Functional Interfaces from the API – sample code explaining Supplier, Function/BiFunction
Functional Interfaces from the API – sample code explaining UnaryOperator, BinaryOperator
Method References – their relationship with lambdas. Different types of method references explained with code – bound, unbound, static and constructor.
Method References – how the context helps in understanding them.
Streams – what they are, stream pipelines and stream laziness.
Streams – Teal operations.
Streams – Teal operations – reduce, collect explained with code examples.
Streams – collect using API collectors explained with code examples e.g. CollectorsDOTtoMap, CollectorsDOTgroupingBy and CollectorsDOTpartitioningBy
Streams – Intermediate Operations explained with code examples e.g. filter, distinct, limit, map, flatMap and sorted.
Streams – stateful and short-circuiting intermediate operations explained.
Streams – Primitive Streams – how to create them, what their API’s look like and how to map between them.
Streams – mapping between Object streams and primitive streams and vice versa.
Optionals – what they are and why they are useful. Sample code demonstrating their use.
Parallel Streams – how to create them. Sequential versus parallel stream processing.
Intermediate Java. Whereas my “Java 8 OCA (1Z0-808) Course” starts at the bning, this assumes that the learner has a reasonable level of Java.
To make understanding lambdas easier, a familiarity with anonymous inner classes would help. That said, lambdas are contrasted with anonymous inner class syntax in the course.
This course is a systematic approach to explaining in both notes format and code examples, lambda expressions and streams in Java.
Topics include:
Lambdas:
Functional Interfaces
Lambdas and their relationship to Functional Interfaces
Lambdas in code using a custom Functional Interface
Lambdas in code using the pre-defined API Functional Interfaces:
Predicate/BiPredicate
Supplier
Consumer/BiConsumer
Function/BiFunction
UnaryOperator and BinaryOperator






