4.53 out of 5
844 reviews on Udemy

Learn Java Functional Programming with Lambdas & Streams

Learn Java Functional Programming with Lambdas & Streams. Learn the most powerful NEW feature in Java 8 and Java 9.
in28Minutes Official
4,681 students enrolled
You will learn to write great Java code with Functional Programming
You will solve a number of Java Puzzles and Exerices using Functional Programming
You will learn the Fundamentals of Functional Programming - Lambda Expressions, Method References, Streams and Functional Interfaces
You will learn about intermediate and terminal Stream operations - map, reduce, forEach, filter, distinct, sorted
You will learn about a variety of Functional Interfaces - Predicate, Consumer, Supplier, BinaryOperator and Function
You will learn to simplify your Java code to play with List and Map using Functional Programming
You will learn to play with Java Files and Threads using Functional Programming
You will learn some fundamentals of Functional Programming - Behavior Parameterization and Higher Order Functions
You will Join 300,000 Learners having AMAZING LEARNING Experiences with in28Minutes

Functional Programming is an essential skill for Java Programmers today.

Wanna start playing with Functional Programming in Java and Learn Streams and Lambdas?

Want to write awesome Java code with Functional Programming using Streams, Lambda Expressions, Functional Interfaces, and Method References?

Want to make your Java Programs more performant and parallelizable using Functional Programming?

Are you ready to learn the most awesome new feature introduced into Java in Java 8 and Java 9?

Are you ready to learn about Functional Programming and take the next step in your programming career?

Do you want to join 500,000+ learners having Amazing Learning Experiences with in28Minutes?

Look No Further!


5 STARS – Really good course. If you are looking out to get good knowledge on Functional Programming, then this course is waiting for you 🙂

5 STARS – Great teacher and Great Course…Ranga know how to start from beginner to Master…Good course!

5 STARS – Good examples how we used to write code and how to do it with functional programming. The course builds knowledge in such simple steps that it is effortless to learn

5 STARS – Ranga has explained the Java 8 features thoroughly and succinctly, I should have taken this course before, that would have saved me hours and stress of frantically searching for code snippets in stack overflow.

5 STARS – Ranga’s small but powerful building code approach helped me to develop the thinking. When he says pause the video and try please do so that way I learned a lot. I was feeling like I was doing Pair programming with Ranga. Thank you Ranga. I have most of your courses this is the second one I completed. A big Thank you.


Functional Programming was introduced into Java in Java 8. Additional Functional Programming Enhancements were introduced in Java 9.

In this hands-on course, we will learn to write an amazing Java code with Functional Programming. You will learn the basics of Java Functional Programming – Lambda Expressions, Method References, Streams, and Functional Interfaces.

This course would be a perfect first step as an introduction to Functional Programming with Java.

You will be using Eclipse (Java IDE) in this course. We will help you set up each one of these.

Start Learning Now. Hit the Enroll Button!


Introduction to the Course

  • Step 01: Functional Programming with Java – Course Overview

  • Step 02: Functional Programming with Java – Exploring Github Repo and Installations

Introduction to Functional Programming with Java

  • Step 01: Getting Started with Functional Programming with Java

  • Step 02: Writing Your First Java Functional Program

  • Step 03: Improving Java Functional Program with filter

  • Step 04: Using Lambda Expression to enhance your Functional Program

  • Step 05: Do Functional Programming Exercises with Streams, Filters and Lambdas

  • Step 06: Using map in Functional Programs – with Exercises

  • Step 07: Quick Review of Functional Programming Basics

Playing with Streams

  • Step 01: Learning Stream Operations – Calculate Sum using reduce

  • Step 02: Playing with reduce

  • Step 03: Exploring Streams with Puzzles in JShell

  • Step 04: Do Functional Programming Exercises with Streams and reduce

  • Step 05: Learn Stream Operations – distinct and sorted

  • Step 06: Using Comparators to Sort Streams with sorted

  • Step 07: Collecting Stream Elements to List using collect

  • Step 08: Reviewing Streams – Intermediate and Stream Operations

Exploring Java Functional Interfaces and Lambdas

  • Step 01: Getting Started with Functional Interfaces – Predicate, Consumer and Function

  • Step 02: Do Exercises with Functional Interfaces – BinaryOperator

  • Step 03: Doing Behavior Parameterization with Functional Programming

  • Step 04: Do Exercise with Behavior Parameterization

  • Step 05: Exploring Supplier and UnaryOperator Functional Interfaces

  • Step 06: Exploring BiPredicate, BiFunction, BiConsumer, and Primitive Functional Interfaces

  • Step 07: Playing Puzzles with Functional Interfaces and Lambdas

  • Step 08: Exploring Method References with Java

Java Functional Programming with Custom Classes

  • Step 01: Creating Custom Class Course with some Test Data

  • Step 02: Playing with allMatch, noneMatch and anyMatch

  • Step 03: Sorting courses with sorted and creating Comparators

  • Step 04: Playing with skip, limit, takeWhile and dropWhile

  • Step 05: Finding top, max and min courses with max, min, findFirst and findAny

  • Step 06: Playing with sum, average and count

  • Step 07: Grouping courses into Map using groupingBy

Playing with Java Functional Programming

  • Step 01: Creating Streams using Stream of method and for Arrays

  • Step 02: Creating Streams for First 100 Numbers, Squares of Numbers and More

  • Step 03: Doing Big Number calculations with BigInteger

Playing further with Java Functional Programming

  • Step 01: Joining Strings with joining and Playing with flapMap

  • Step 02: Creating Higher-Order Functions

  • Step 03: FP and Performance – Intermediate Stream Operations are Lazy

  • Step 04: Improving Performance with Parallelization of Streams

Functional Programming makes Java Easy

  • Step 01: Modifying lists with replaceAll and removeIf

  • Step 02: Playing with Files using Functional Programming

  • Step 03: Playing with Threads using Functional Programming

  • Step 04: Using Functional Programming in Java Applications

Start Learning Now. Hit the Enroll Button!

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5 out of 5
844 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


5 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion