Books & Videos

Table of Contents

Chapter: Introduction

Java 8 Lambda Expressions and Streams: Introduction

06m 52s

Chapter: Lesson 1: Installation, Setup, and Quick Review of Supporting Topics


00m 43s

1.1 Getting Started with Java 8

03m 32s

1.2 Java 8 References

00m 50s

1.3 Quick Review of Pre-Lambda Handlers

14m 6s

1.4 Quick Review of Building Genericized Methods and Classes

08m 5s


01m 56s

Chapter: Lesson 2: Lambda Expressions in Java 8—Part 1: Basics


01m 8s

2.1 Motivation and Overview

10m 58s

2.2 Lambdas: Most Basic Form

10m 54s

2.3 Type Inferencing

04m 44s

2.4 Expression for Body: Implied Return Values

08m 24s

2.5 Omitting Parens

03m 42s

2.6 Summary: Making Lambdas More Succinct

03m 58s

2.7 Example: Numerical Integration

05m 14s

2.8 Making a Reusable Timing Utility

04m 38s

2.9 A Few More Samples

01m 47s


03m 52s

Chapter: Lesson 3: Lambda Expressions in Java 8—Part 2


00m 44s

3.1 The @FunctionalInterface Annotation

05m 19s

3.2 Method References

24m 7s

3.3 Lambda Variable Scoping in Lambdas

04m 39s

3.4 Effectively Final Local Variables

05m 20s


02m 13s

Chapter: Lesson 4: Lambda Expressions in Java 8—Part 3: Lambda Building Blocks in java.util.function


00m 53s

4.1 Overview: Lambda Building Blocks

08m 46s

4.2 Simply-Typed Building Blocks

04m 58s

4.3 Generic Building Blocks: Predicate

04m 13s

4.4 Generic Building Blocks: Function

08m 47s

4.5 Other Generic Building Blocks

08m 13s


01m 53s

Chapter: Lesson 5: Lambda Expressions in Java 8—Part 4


00m 50s

5.1 Java 8 Interfaces: Static Methods

05m 26s

5.2 Java 8 Interfaces: Default Methods

05m 39s

5.3 Resolving Conflicts with Default Methods

04m 2s

5.4 Higher Order Functions: Methods that Return Functions

02m 18s

5.5 Higher Order Functions in Predicate

04m 46s

5.6 Higher Order Functions in Function

07m 29s

5.7 Higher Order Functions in Consumer

03m 18s

5.8 Higher Order Functions in Your Own Code

04m 17s


04m 40s

Chapter: Lesson 6: Streams in Java 8—Part 1


00m 45s

6.1 Overview of Streams

11m 27s

6.2 Getting Standard Data Structures Into and Out of Streams

11m 38s

6.3 Core Stream Methods: Overview

06m 22s

6.4 forEach: Calling a Lambda on Each Element of a Stream

09m 14s

6.5 map: Transforming a Stream by Passing Each Element Through a Function

07m 34s

6.6 filter: Keeping Only the Elements that Pass a Predicate

04m 5s

6.7 findFirst: Returning the First Element of a Stream while Short-Circuiting Earlier Operations

10m 44s

6.8 Lazy Evaluation

09m 7s


02m 32s

Chapter: Lesson 7: Streams in Java 8—Part 2


00m 44s

7.1 Operations that Limit the Stream Size: limit, skip

02m 16s

7.2 Operations that Use Comparisons: sorted, min, max, distinct

05m 39s

7.3 Operations that Check Matches: allMatch, anyMatch, noneMatch, count

02m 38s

7.4 Number-Specialized Streams

08m 0s

7.5 The reduce Method and Related Reduction Operations

08m 59s


02m 20s

Chapter: Lesson 8: Streams in Java 8—Part 3


00m 54s

8.1 Grouping Stream Elements: Fancy Uses of collect

10m 8s

8.2 Parallel Streams

14m 30s

8.3 Infinite (Unbounded On-the-Fly) Streams

16m 24s


02m 1s

Chapter: Lesson 9: File I/O Basics: Treating Files as Streams


00m 25s

9.1 More on try/catch Blocks

09m 59s

9.2 Paths

05m 48s

9.3 File Reading: Overview

10m 46s

9.4 File Reading: First Variation

17m 31s

9.5 Simple File Writing

03m 19s

9.6 Faster and More Flexible File Writing

04m 2s

9.7 Exploring Folders

06m 43s


02m 49s

Chapter: Lesson 10: Advanced File I/O: Making Code More Flexible by Using Lambdas and Generic Types


00m 28s

10.1 File Reading: Second Variation

08m 26s

10.2 File Reading: Third Variation

11m 17s

10.3 File Reading: Fourth Variation

05m 12s

10.4 Combining Predicates

13m 20s


03m 8s

Chapter: Summary

Java 8 Lambda Expressions and Streams: Summary

01m 9s