O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

The code files for this course are available at - https://github.com/PacktPublishing/Hands-On-Functional-Programming-with-Java

Downloading the example code for this course: You can download the example code files for all Packt video courses you have purchased from your account at http://www.PacktPub.com. If you purchased this course elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Chapter 1 : Understanding Functional Programming
    1. The Course Overview 00:02:56
    2. What Is Functional Programming? 00:02:15
    3. Implementing Anonymous Classes (Example A) 00:03:26
    4. Lambda Expression (Lambda Version of Example A) 00:02:48
    5. Differentiating Interfaces versus Functional Interfaces 00:02:29
  2. Chapter 2 : Working with Lambda Expressions
    1. Implementing the Syntax of Lambda Expressions 00:04:08
    2. Replacing Anonymous Classes 00:03:16
    3. Using Method References 00:02:33
    4. Best Practices for Using Lambda Expressions 00:01:57
  3. Chapter 3 : Develop Functional Code Using the Collections Framework
    1. Introduction to the Collections Framework 00:03:35
    2. Implementing the Set Interface Using HashSet and LinkedHashSet 00:05:14
    3. Implementation of the SortedSet Interface 00:04:18
    4. Deploying the List Interface 00:04:14
    5. Working with the Queue Interface 00:04:12
    6. Introduction and Implementations of Maps 00:05:01
  4. Chapter 4 : Implementing the Stream API
    1. Understanding the Stream API and Constructing Streams 00:04:11
    2. Intermediate Stream Operations 00:05:26
    3. Terminal Stream Operations and the Optional Class 00:04:56
    4. Implementing Stream Operations in Examples 00:03:05
    5. Operations on Collections and Creating Collections Using Collectors 00:04:38
    6. Hands-on Collection Sorting Using Streams 00:03:56
  5. Chapter 5 : Advanced Stream Operations
    1. Advanced Filtering and Mapping Using Streams 00:03:20
    2. Using Reduce for Advanced Transformations 00:03:16
    3. Implementing flatMap in Examples 00:03:09
    4. Advanced Grouping of Objects Using Streams 00:04:28
    5. Advanced Joining and Partitioning of Objects Using Streams 00:04:07
  6. Chapter 6 : Implementing Concurrent Streams in Your Code
    1. Benefits of Concurrent Streams and Concurrency in General 00:03:15
    2. Implementing Parallel Streams 00:02:59
    3. Parallel Stream Operations 00:03:00
    4. Comparing Sequential to Parallel Streams 00:03:21