جاوا 8 الگوها و بسترهای جدیدی برای ساختن برنامههای بسیار کارآمد و قدرتمند در اختیار کاربران قرار میدهد. این دورهی آموزشی تصویری مفاهیم و تکنیکهای بسیار مهمی را در زمینهی عبارات لامبدا (Lambda Expressions) پوشش داده است. لامبدا گرچه بستر نرمافزاری بسیار خوبی است اما بدون فناوریهای جدیدی که در جاوا ارائه شدند مفید و کارآمد نخواهد بود. در این آموزش، بهرهگیری از فریمورکهای Collections و Streams در پلتفرم عالی جاوا 8 با استفاده از عبارات لامبدا مورد تدریس قرار گرفتهاند.
محتوای آموزش:
1- آشنایی با عبارات لامبدا و Functional Interfaces
2- فرایند Writing Data Processing Functions با لامبدا در جاوا 8
3- پردازش اطلاعات با استفاده از لامبدا ها و چارچوب Collections
4- فرایند Implementing Map Filter Reduce با استفاده از لامبدا و Collections
5- موارد مهم مربوط به Streams
و ...
تولید کننده: Pluralsight
تاریخ انتشار: 16-09-2015
سطح: متوسط
مدت زمان آموزش: 4 ساعت و 1 دقیقه
مدرس: Jose Paumard
فهرست کامل سرفصلها و عناوین آموزش (به همراه زمان دقیق آنها) :
Lambda Expressions and Functional Interfaces - 47m 48s
Introduction to the Course 3m 7s
What Are You Going to Learn in This Course? 2m 9s
Agenda of the Course 1m 31s
Who Are You? What Should You Know to Follow This Course? 1m 40s
Agenda of This Module 1m 5s
Lambda Expression: Introduction, Instances of Anonymous Classes 3m 24s
Lambda Expression: Passing Code as a Parameter 2m 9s
Let Us Write Our First, Simple Lambda Expressions 3m 2s
Lambda Expression: Remarks and Precisions 1m 51s
Method References: A First Example with an Instance Method 2m 29s
Method References: A Second Example with a Static Method 2m 9s
Method References: The System.out.println Pattern 1m 32s
How to Create New API: Default and Static Methods in Interfaces 2m 6s
Live Coding Introduction: The Comparator Example 0m 53s
Implementing a Comparator with Lambda Expressions 2m 17s
Comparing by Age, Last Name, and First Name 0m 57s
Refactoring the Comparison with a Key Extractor 2m 0s
Implementing the Comparator.comparing Static Method 2m 48s
Making the Key Extractor Generic, Returning Comparable Objects 2m 3s
Chaining Comparators with the thenComparing Default Method 2m 7s
Writing the Comparator.thenComparing Implementation 1m 36s
Writing the Final Comparator Creation and Chaining Pattern 2m 47s
Wrap-up of the Module 1m 56s
Writing Data Processing Functions with Lambdas in Java 8 - 46m 10s
Introduction to the Module 1m 34s
What Is a Functional Interface? The Predicate Example 2m 1s
How to Implement a Functional Interface with a Lambda Expression 2m 7s
How Does the Compiler Recognize the Type of a Lambda Expression? 3m 52s
A Lambda Is Still an Interface with Usable Methods 0m 35s
Functional Interface: The Complete and Exact Definition 3m 24s
How to Use the @FunctionalInterface Annotation 2m 50s
The Four Categories of the java.util.function Package 1m 8s
First Category: The Consumers 0m 59s
Second Category: The Supplier 1m 24s
Third Category: The Functions 2m 31s
Fourth Category: The Predicates 1m 8s
Functional Interfaces for Java Primitive Types 1m 29s
Introduction to the Live Coding Section: The Predicate Example 1m 34s
Writing and Using a First, Simple Predicate Lambda Expression 1m 49s
Chaining Predicates with the AND Boolean Operation 1m 44s
Adding a and() Method on the Predicate Functional Interface 1m 35s
Implementing the and() Default method on the Predicate Interface 3m 44s
Adding a or() Default Method on the Predicate Interface 3m 12s
Creating Predicates with a Static Call on a Functional Interface 2m 41s
Making the isEqualsTo() Method Generic of the Predicate Interface 1m 32s
Live Coding Wrap-up 1m 14s
Module Wrap-up, Presentation of the Next Module 1m 53s
Data Processing Using Lambdas and the Collection Framework - 45m 54s
Introduction to the Module 1m 11s
First Methods on Iterable, Collection and List 3m 51s
First Method on Map: forEach() 1m 38s
More Methods on Map: getOrDefault() 2m 15s
More Methods on Map: putIfAbsent() 2m 37s
More Methods on Map: replace() and replaceAll() 2m 0s
New Pattern on Map: remove() 0m 37s
New Patterns on Map: The compute() method 1m 55s
New Patterns on Map: computeIfAbsent(), computeIfPresent() 2m 47s
Building Maps of Maps and Maps of Lists with computeIfAbsent() 3m 21s
New Pattern on Map: The merge() method 2m 5s
Using merge() to Merge Two Maps Together 3m 34s
Live Coding Session Introduction, forEach() in Action 2m 23s
Methods removeIf(), replaceAll(), sort() in Action 3m 13s
Setting Default Value for map.get(): getOrDefault() 2m 2s
Adding Default key / value pairs: putIfAbsent, computeIfAbsent 2m 48s
Merging Maps with the map.merge() Method 3m 21s
Merging Maps: Analysis of the Result 1m 32s
Live Coding and Module Wrap-up 2m 38s
Implementing Map Filter Reduce Using Lambdas and Collections - 51m 45s
Introduction to the Module 1m 19s
Computing the Average of People Older than 20, Taken From a List 2m 21s
Map / filter / reduce: A Precise Explaination 2m 47s
A First Implementation, in the JDK7 Way 2m 31s
A Closer Look at the Reduction Step: How Does it Work? 2m 9s
Parallel Implementation of the Reduction Step 1m 58s
First Caveat: Non-associative Reduction Operations 3m 41s
How to Detect Non-associative Reduction Operations 2m 40s
Second Caveat: Reduction of a Singleton 2m 33s
Second Caveat: Reduction of a Set with Several Elements 2m 30s
Second Caveat: Reduction That Do Not Have Identity Element 1m 7s
Live Coding: Setting up the Environment 2m 44s
Simulating Parallel Computation of a Non-associative Reduction 3m 32s
Non-associative Reduction: The Average Reduction Operation 1m 49s
Computing a Max: Reduction with No Identity Element 2m 24s
Live Coding Wrap-up 1m 19s
Using Optionals to Handle Reductions with No Identity Element 1m 13s
Wrap-up on the Reduction Step 0m 46s
Implementation in the JDK7 Way: a Closer Look 1m 3s
CPU Load and Memory Footprint Evaluations 2m 46s
Example of an allMatch Reduction Operation: Lost Optimizations 2m 21s
Why Is this First, Naive Implementation Should be Avoided 2m 10s
A First Glimpse at the Stream API 1m 30s
Module Wrap-up 2m 21s
The Stream API, How to Build Streams, First Patterns - 49m 38s
Introduction to the Module 1m 13s
A First Technical Definition of the Stream Interface 1m 57s
First Definitions of the Concept of Stream 2m 14s
The Notion of Unbounded Stream 2m 24s
How to Build Streams: Empty Streams, Singletons, varargs 2m 33s
How to Build Streams: The Generator and Iterator Pattern 2m 29s
How to Build Streams on Strings, Regular Expressions, and Text Files 2m 34s
The Stream.Builder Pattern 2m 14s
The map / filter / reduce Pattern Written with a Stream 3m 2s
A Second Example of the ap / filter / reduce Pattern on Streams 1m 36s
Intermediate and Terminal Calls on Streams: peek() and forEach() 3m 16s
How to Tell an Intermediate Call from a Terminal Call 2m 7s
Selecting Ranges of Data in Streams: skip() and limit() 3m 4s
Simple Reductions: Matchers, Short-circuiting Reductions 2m 0s
Finder Reductions, Use of Optionals 1m 37s
Example of Finder Reductions: findFirst(), findAny() 1m 32s
General Reductions: Use of the reduce() Method 4m 3s
Live Coding Session Introduction 0m 55s
Example of a First Simple Stream Built on a vararg 1m 21s
Building a Stream: The Generate Pattern, Use of Limit() 1m 23s
Building a Stream: The Iterate Pattern 1m 50s
Bulding Streams of Random Numbers Using Random.ints() 1m 23s
Live Coding Session Wrap-up 1m 6s
Module and Course Wrap-up 1m 36s