Functional programming in Java 8 : hands-on practice using lambdas, method references, and constructor references - Kalin, Martin (O'Reilly, 2016)
"In this Java 8 course for experienced programmers, Martin Kalin introduces constructs such as lambda expressions, method references, constructor references, and the Java Streams API. This is a code-driven course for the Java programmer who wants real hands-on experience working with functional programming. You will gain a thorough understanding of why Java 8 was introduced, how functional programming works within data pipelines, and how this functional programming style promotes terse and simple to modify code, run-time efficiency, and thread safety. You will require access to a computer loaded with Java SE 8."--Resource description page.