Java Lambdas and Streams. Mastering Lambdas and Streams in Java (with code examples). Functional Interfaces – what they are and their relationship to lambda expressions.
What you’ll learn
- 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 – Terminal operations.
- Streams – Terminal 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 beginning, 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.
Java Lambdas and Streams Course Description
This course is a systematic approach to explaining in both notes format and code examples, lambda expressions and streams in Java.
- 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:
- UnaryOperator and BinaryOperator
- final and “effectively final”
- Method References:
- context and it’s effect in understanding method references
- Creating streams
- Terminal operations:
- Intermediate operations:
- filter(), distinct(), limit()
- map(), flatMap(), sorted()
- Primitive streams:
- Functional Interfaces
- Mapping between primitive streams
- Mapping between primitive streams and Object streams and vice versa
- Parallel streams
This course is geared towards Java Certification i.e. the Predicate lambda sections would suit Java 8 OCA (1Z0-808). The remaining lambda sections and the streams sections would suit both Java 8 OCP (1Z0-809) and Java 11 (1Z0-819). This course explains the concepts through small, simple, targeted code examples. There are no MCQ’s or code exercises to be done.
For those who don’t know me, my “Java 8 OCA (1Z0-808) Course” is, at the time of writing, the highest rated Java 8 OCA course on Udemy. I am a lecturer since 2002 and have taught the OCA and OCP syllabii since 2013 on behalf of a highly regarded software company. On completion of the courses with me, graduates then face the company’s own internal Java Certification exam (similar in style to Oracle’s). I have no visibility into the questions they will face. It is a 3 hour long intensive exam. The company are delighted with the pass rate (100% since year 1).
I love teaching and this course has all my experience in explaining lambdas and streams in Java. I am delighted that Enthuware (the excellent Java certification training tool), have, in their explanations, linked to my YouTube channel.
Who this course is for:
- Anyone interested in learning Lambdas and Streams (the Functional Programming aspects of Java 8).