Skip to content

abhinavg916/functional-programming-in-java

Repository files navigation

Java Functional Programming with Lambdas and Streams

Requirements

  • Java version above 9

Contents

  • Unit 1: Introduction to the Functional Programming
    • Functional Programming with Java - Course Overview
    • Functional Programming with Java - Exploring GitHub Repo and Installations
  • Unit 2: Introduction to Functional Programming with Java
    • Getting Started with Functional Programming with Java
    • Improving Java Functional Program with filter
    • Use Lambda Expression to enhance Functional Program
    • Using map in Functional Programs - with Exercises
    • Exercise on Functional Programming with Streams, Filters and Lambdas
  • Unit 3: Playing with Streams
    • Stream Operations - Calculate Sum using reduce
    • Playing with reduce
    • Exploring Streams with Puzzles in JShell
    • Exercises on Functional Programming with Streams and reduce
    • Stream Operations - distinct and sorted
    • Using Comparators to Sort Streams with sorted
    • Collecting Stream Elements to List using collect
    • Reviewing Streams - Intermediate and Stream Operations
  • Unit 4: Java Functional Interfaces and Lambdas
    • Getting Started with Functional Interfaces - Predicate, Consumer and Function
    • Do Exercises with Functional Interfaces - BinaryOperator
    • Doing Behaviour Parameterization with Functional Programming
    • Exercise with Behaviour Parameterization
    • Exploring Supplier and UnaryOperator Functional Interfaces
    • Exploring BiPredicate, BiFunction, BiConsumer, and Primitive Functional Interfaces
    • Playing Puzzles with Functional Interfaces and Lambdas
    • Exploring Method References with Java
  • Unit 5: Java Functional Programming with Custom Classes
    • Creating Custom Class Course with some Test Data
    • Playing with allMatch, noneMatch and anyMatch
    • Sorting courses with sorted and creating Comparators
    • Playing with skip, limit, takeWhile and dropWhile
    • Finding top, max and min courses with max, min, findFirst and findAny
    • Playing with sum, average and count
    • Grouping courses into Map using groupingBy
  • Unit 6: Java Functional Programming
    • Creating Streams using Stream of method and for Arrays
    • Creating Streams for First 100 Numbers, Squares of Numbers and More
    • Doing Big Number calculations with BigInteger
  • Unit 7: Playing further with Java Functional Programming
    • Joining Strings with joining and Playing with flapMap
    • Creating Higher-Order Functions
    • FP and Performance - Intermediate Stream Operations are Lazy
    • Improving Performance with Parallelization of Streams
  • Unit 8: Functional Programming makes Java Easy
    • Modifying lists with replaceAll and removeIf
    • Playing with Files using Functional Programming
    • Playing with Threads using Functional Programming
    • Using Functional Programming in Java Applications

Author