Udemy

Functional Programming in Java : Java Lambdas and Streams

Enroll Now
  • 764 Students
  • Updated 8/2024
4.6
(94 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
4 Hour(s) 24 Minute(s)
Language
English
Taught by
Dr. Seán Kennedy OCA, OCP
Rating
4.6
(94 Ratings)

Course Overview

Functional Programming in Java : Java Lambdas and Streams

Mastering Lambdas and Streams in Java (with lots of code examples)

IMPORTANT - My advanced Java course: Java 21, Java 17, Java 11, Java 8 (adv.) and Spring Boot 3, contains this course as a subset. My advanced Java course contains an over 31 hours of content and is worth checking out before investing in this this course (as it is, in my opinion, better value for money).


Sample reviews:

"Excellent course on Java Lambdas and Streams. Doctor Sean Kennedy clearly explained all concepts and techniques using great amount of examples. The assignments reflected what we learned in the course. Thank you Doctor Sean Kennedy!" [Jing H]
"This course provides hands-on knowledge on how to work with functional programming in java. From Lambdas to Optionals, the way Java 8 api adds this new features is really a key factor to productivity and performance." [Calebe O]

"Concise, easy to follow, very useful. Very talented lecturer." [Luka K]

"Sean described lambdas and streams ,covered all the topics in detailed level." [Kalpana M]
"Very good course, learnt many new things. Dr Kennedy should bring out more courses." [Vasudha S.]

"The course is very well-organized and clearly presented. Thank you, Dr. Seán Kennedy." [Ricardo R.]

"Super course, great help with this important area of Java programming." [David F.]

"Excellent course and teacher's explanations." [E. A.]

"Fantastic course, very engaging and delivered in an easy to understand manner."  [Gary W.]

"Excellent Course, the concepts are explained in a clear & concise manner making it easy to understand."  [Bv]

"Content explained clearly and punctually. Recommended" [Daniel M.]

"Very good introduction, clear and easy to understand." [Richard S.]


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 (on my GitHub repo).

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

    • Assignment to reinforce the content

  • 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

    • Assignment to reinforce the content

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 any version of Java OCP. This course explains the concepts through small, simple, targeted code examples.

Note that, my other 2 courses, namely "Java 8 OCA (1Z0-808) Certification - Master the Fundamentals" and "Java 21, Java 17, Java 11, Java 8 (advanced) and Spring Boot" have both been selected for the Udemy Business portfolio (only the top 3% of courses qualify).

For those who don't know me, I am a lecturer since 2002 and have taught the Java 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.

Course Content

  • 3 section(s)
  • 36 lecture(s)
  • Section 1 Lambdas (Lambda Expressions)
  • Section 2 Streams
  • Section 3 Bonus Content

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.


Reviews

  • R
    Richard Sobota
    5.0

    Very good introduction, clear and easy to understand.

  • P
    Pamela Moore
    5.0

    It was quite good, and I finally wrapped my head around lambdas and streams. One thing that could be improved is a better way to submit the final assignment. Thank you!

  • M
    Mick Ocallaghan
    4.5

    Concise and clear explanations, I would prefer labs to be more frequent and smaller and I think Sean should change the battery in his fire alarm

  • J
    Jayaprakash
    4.0

    The content and the examples are good. It helped to acquaint with Lambdas and Streams.

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed