Java Lambdas and Streams

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.
Free Course:  Vue and Javascript With Real Vue JS and Javascript Projects


  • 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. 

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
    • final and “effectively final”
    • Method References:
      • bound
      • unbound
      • static
      • constructor
      • context and it’s effect in understanding method references
  • Streams:
    • Pipelines
    • Laziness
    • Creating streams
    • Terminal operations:
      • reduce()
      • collect()
        • Collectors.toMap()
        • Collectors.groupingBy()
        • Collectors.partitioningBy()
    • Intermediate operations:
      • filter(), distinct(), limit()
      • map(), flatMap(), sorted()
    • Primitive streams:
      • Creating
      • API
      • Functional Interfaces
      • Mapping between primitive streams
      • Mapping between primitive streams and Object streams and vice versa
    • Optionals
    • Parallel streams
Free Course:  2022 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning

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).

Free Course:  Unit Testing Swift Mobile App

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).


Hash Code Work Only

Leave a Comment