Functional Programming in Java : Java Lambdas and Streams

Functional Programming in Java Java Lambdas and Streams


UPDATE February 2023 – streams assignment added!

UPDATE June 2022 – I have just published my Java 17, Java 11, Advanced Java 8 (1Z0-829,1Z0-819,1Z0-809) course. Lambdas and Streams are contained in that much larger course. Please check out the new course as it may be much better value.

UPDATE April 2022 – lambdas/method references assignment added!

This course is a systematic approach to explaining in both notes format and code examples, lambda expressions and streams in Java. All the code samples are included.

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

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.

For those who don’t know me, my “Complete Java 8 OCA (1Z0-808) Java Certification 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).


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

Last Updated 1/2023

Download Links

Direct Download

Functional Programming in Java : Java Lambdas and (1.4 GB) | Mirror

Leave a Reply

Your email address will not be published. Required fields are marked *