در این آموزش تصویری با کار با Collections و Streams در Java 8 با استفاده از Lambda Expressions آشنا می شوید.
این دوره آموزشی محصول موسسه Pluralsight است.

سرفصل های دوره:

  • کار با عبارات لامبدا و رابط کاربردی
  • کار با ماژول ها
  • کار با پارامتر ها
  • کار با متد استاتیک
  • فاکتورگیری مجدد برنامه
  • پردازش داده ها با Lambda در جاوا 8
  • نحوه ساخت رابط کاربردی
  • پیاده سازی رابط کاربردی
  • نحوه استفاده از FunctionalInterface
  • کار با توابع
  • کار با عبارات بولین
  • کار با حلقه foreach
  • کار با تابع () getOrDefault
  • کار با تابع () putIfAbsent
  • نحوه حذف داده ها
  • نحوه محاسبه متد
  • کار با توابع () removeIf(), replaceAll(), sort
  • کار با توابع () map.get(): getOrDefault
  • استفاده از لامبداها و مجموعه ها
  • کار با رشته، عبارات منظم، و فایل های متنی
  • و…

عنوان دوره: Pluralsight From Collections to Streams in Java 8 Using Lambda Expressions
سطح: متوسط
مدت زمان: 4 ساعت و 1 دقیقه
نویسنده: Jose Paumard


This course shows the new patterns introduced in Java 8, based on lambda expressions, the functional interfaces, the Collection Framework and the Stream API.
Java 8 brought many new patterns to build efficient and clean applications. In this course, we cover one most important new thing: lambda expressions. Lambdas are a nice thing, but would be useless without new patterns to process data. These new patterns have been added to the Collection Framework, and to a the new Stream API. This course quickly explains what the map / filter / reduce pattern is about, and why is has been added to the Stream API. This new API is precisely described: how it can be used to efficiently process data and how it can be used in parallel. Caveats and corner cases are also shown.

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-up1m 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

حجم فایل: 362MB