Hands-On Functional Programming with Java

Video description

Create robust and maintainable Java applications using the functional programming paradigm

About This Video

  • Explore how you can blend object-oriented and functional programming styles in Java
  • Use lambda expressions to write flexible and succinct code
  • A tutorial that strengthens your fundamental functional programming techniques to enhance your applications

In Detail

Functional programming, a popular programming paradigm used to simplify many tasks, will help you write flexible and succinct code. This paradigm makes programs easier to reason with because they're deterministic (one specific input will always give you the same output).

This course takes a thought-leadership approach, gently introduces you to Functional Programming, and takes you all the way to becoming a master of the paradigm. You'll then learn how to work with higher-order functions, lambda functions, collections and more. You'll learn how to apply the best data structures and algorithms that optimize functions and also how to reuse and refactor functional blocks of code. This course is updated to Java 12 so that you will be ahead of the crowd.

By the end of the course, you will have mastered the concepts regarding functional programming along with OOP, to build robust and highly testable applications.


If you are a Java developer and want to improve your applications using the functional programming approach, then this course is for you. A solid understanding of Java concepts is required.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Understanding Functional Programming
    1. The Course Overview
    2. What Is Functional Programming?
    3. Implementing Anonymous Classes (Example A)
    4. Lambda Expression (Lambda Version of Example A)
    5. Differentiating Interfaces versus Functional Interfaces
  2. Chapter 2 : Working with Lambda Expressions
    1. Implementing the Syntax of Lambda Expressions
    2. Replacing Anonymous Classes
    3. Using Method References
    4. Best Practices for Using Lambda Expressions
  3. Chapter 3 : Develop Functional Code Using the Collections Framework
    1. Introduction to the Collections Framework
    2. Implementing the Set Interface Using HashSet and LinkedHashSet
    3. Implementation of the SortedSet Interface
    4. Deploying the List Interface
    5. Working with the Queue Interface
    6. Introduction and Implementations of Maps
  4. Chapter 4 : Implementing the Stream API
    1. Understanding the Stream API and Constructing Streams
    2. Intermediate Stream Operations
    3. Terminal Stream Operations and the Optional Class
    4. Implementing Stream Operations in Examples
    5. Operations on Collections and Creating Collections Using Collectors
    6. Hands-on Collection Sorting Using Streams
  5. Chapter 5 : Advanced Stream Operations
    1. Advanced Filtering and Mapping Using Streams
    2. Using Reduce for Advanced Transformations
    3. Implementing flatMap in Examples
    4. Advanced Grouping of Objects Using Streams
    5. Advanced Joining and Partitioning of Objects Using Streams
  6. Chapter 6 : Implementing Concurrent Streams in Your Code
    1. Benefits of Concurrent Streams and Concurrency in General
    2. Implementing Parallel Streams
    3. Parallel Stream Operations
    4. Comparing Sequential to Parallel Streams

Product information

  • Title: Hands-On Functional Programming with Java
  • Author(s): Christian Stojkoski
  • Release date: February 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781789804362