In this chapter, we will discuss functional programming and how Java 9 implements many functional programming concepts. We will work with many examples on how to mix functional programming with object-oriented programming. We will:
Understand functions and methods as first-class citizens
Work with functional interfaces and lambda expressions
Create a functional version of array filtering
Create a data repository with generics and interfaces
Filter collections with complex conditions
Use a map operation to transform values
Combine a map operation with reduce
Chain many operations with map and reduce
Work with different collectors