Functional Programming With Java
Learn to incorporate some tools and concepts from functional programming into Java code, both in Java 8 and earlier versions.
What you'll learn
If you can write object-oriented programs in Java, and you'd like to write even better Java, then this course is for you. Starting with real business problems, see how concepts from functional programming can help you in Java. From function values to streams, learn the significance of some of Java 8's additions -- and get the same benefits in Java 6! This course teaches ways of thinking that help functional programmers write code that doesn't break. This course is designed for Java programmers, although any object-oriented developer can benefit from the very clear explanations of concepts. It assumes no familiarity with functional programming. After this course, you'll have more design options and ideas, and you'll find writing Java more fun than before.
Table of contents
- Hello 2m
- Thinking and Coding 1m
- Functions as Values 1m
- Looking Back 1m
- OO Implementation 1m
- OO Design 1m
- More OO Design 1m
- What's the Problem? 1m
- Java 8 Lambda 2m
- Lambdas to the Rescue 1m
- Is This better? 1m
- Deduplication 3m
- Data In, Data Out 2m
- Duplication in the Small 2m
- Restoring Type Safety 1m
- A Familiar Pattern 1m
- Java 6 2m
- Secret Functional Programmer Words 1m
- Scaling This Up 2m
- Deeper Meaning 1m
- The Setup 2m
- The Quick Solution 2m
- The Benefit 1m
- Code Review 2m
- Isolation 2m
- Testing With Isolation 2m
- What I Want, When I Want It 1m
- Now in Java 6 2m
- Is it Worth It? 2m
- Underlying Differences 1m
- The Next Mission 2m
- When I was Younger 2m
- Introducing Iterables 1m
- External and Internal Iteration 2m
- Changing and Uniting 1m
- Pipeline 2m
- Now in Java 8 1m
- Filter, Map, Reduce With a Basket 2m
- Optional Values 1m
- Increasing Clarity 2m
- Compare the Results 2m
- Introduction 1m
- One Trip Through 1m
- Lazy Streams 1m
- When to Stop 2m
- Stream Operations 1m
- Is it a Big Sale Day? 2m
- Short Circuits 1m
- Terminal Operations 2m
- Intermediate Operations 2m
- Distinct 1m
- Collectors 2m
- Collectors Within Collectors 1m
- Infinite Streams 2m
- Parallel Streams 2m
- Context Objects 1m
- Optional 2m
- Optional Within Optional 2m
- Functions as Contexts 2m
- Streams Review 1m
- Java 6 2m
- Terminology 1m
- Finale 1m