Lambdas en Streams
Lesgeld
Cursus Lambdas en Streams
De cursus Lambdas en Streams biedt een diepgaande blik op de functionaliteiten die Java 8 introduceerde. Dit begint met een bespreking van hoe functionaliteit in Java 8 werd doorgegeven, waarbij inner en anonymous classes ter sprake komen. Tevens wordt ingegaan op de nieuwe default methods van Java 8 interfaces, wat essentieel is voor het begrijpen van de mogelijkheden binnen deze cursus.
Java 8 Review
In de cursus Lambdas en Streams wordt ee
Cursus Lambdas en Streams
De cursus Lambdas en Streams biedt een diepgaande blik op de functionaliteiten die Java 8 introduceerde. Dit begint met een bespreking van hoe functionaliteit in Java 8 werd doorgegeven, waarbij inner en anonymous classes ter sprake komen. Tevens wordt ingegaan op de nieuwe default methods van Java 8 interfaces, wat essentieel is voor het begrijpen van de mogelijkheden binnen deze cursus.
Java 8 Review
In de cursus Lambdas en Streams wordt eerst een overzicht gegeven van de belangrijkste kenmerken van Java 8. Dit biedt de basis voor het werken met de nieuwe mogelijkheden van de taal. De nadruk ligt op de overgang van traditionele naar functionele programmering in Java.
Lambdas Intro
Vervolgens worden Lambdas geïntroduceerd, die van toepassing zijn op interfaces met slechts één abstracte methode. Deze interfaces staan bekend als functional interfaces en zijn cruciaal voor het gebruik van Lambdas in Java.
Method References
Een belangrijk aspect van de cursus is het leren hoe Lambdas vervangen kunnen worden door method references, wat resulteert in een compactere notatie. De verschillende typen method references worden uitgebreid besproken in de cursus.
Function Package
Daarnaast behandelt de cursus Lambdas en Streams het java.util.function package. Hier komen de verschillende kant-en-klare functional interfaces aan bod, inclusief hun respectievelijke parameters, return values en default methods, die nuttig zijn voor het schrijven van efficiënte Java-code.
Higher Order Functions
De cursus behandelt ook higher order functions, waarbij functies als parameters worden doorgegeven of als return value worden teruggegeven. Dit concept is essentieel voor het uitbreiden van de functionaliteit binnen je Java-programma's.
Streams Intro
Een belangrijk onderdeel van de cursus Lambdas en Streams is de bespreking van de stream library. Je leert hoe streams gecreëerd kunnen worden uit arrays, lists en andere datastructuren. Streams transformeren en filteren data via een reeks van achtereenvolgende operaties, zonder data op te slaan. Het verschil tussen intermediate en terminal stream operations wordt ook behandeld.
Parallel Streams
Tot slot richt de cursus zich op parallel streams, die een verbeterde performance kunnen leveren doordat ze op meerdere CPU cores tegelijkertijd worden uitgevoerd. Tevens wordt er aandacht besteed aan het groeperen van gegevens met streams, wat het werken met grotere datasets vergemakkelijkt.
Voor meer informatie over Java-programmeren kun je ook onze cursus Java Programmeren bekijken. Voor meer technische details en documentatie over Lambdas en Streams, kun je terecht op de officiële Java Streams documentatie.
Doelgroep Cursus Lambdas and Streams
De cursus Lambdas and Streams is bedoeld voor Java ontwikkelaars die functioneel willen leren programmeren met de aan Java 8 toegevoegde lambdas en stream libraries.
Voorkennis Cursus Lambdas and Streams
Goede kennis van en ervaring met programmeren in Java is vereist, maar het is niet noodzakelijk om diepgaande kennis van Java 8 te hebben.
Uitvoering Training Lambdas and Streams
De theorie wordt behandeld aan de hand van presentaties en wordt afgewisseld met oefeningen. Demo's worden gebruikt om de theorie te verduidelijken. De lestijden zijn van 9.30 uur tot 16.30 uur.
Certificaat Lambdas and Streams
Deelnemers ontvangen na succesvolle afronding van de cursus een certificaat Lambdas and Streams.
Modules
Module 1 : Java 8 Review
- Java 8 Lambdas and Streams
- Installation and Setup
- Online References
- Review of Basic Handlers
- Anonymous Classes
- Separate Classes
- Main Implements Interface
- Named Inner Classes
- Anonymous Inner Classes
- Generic Classes and Methods
- Common Eclipse Techniques
Module 2 : Lambdas Intro
- What are Lambdas?
- Passing Functions Around
- Lambdas Interpretation
- Underlying Advantages
- Most Basic Form
- Type Inference
- Expression for Body
- Omitting Parens
- Lambda Alternatives
- Numerical Integration
- Timing Utilities
Module 3 : Method References
- Review @Override
- @FunctionalInterface
- Updated Interfaces
- Method References
- Type of Method References
- Constructor References
- Variable Scoping
- Lambda Scoping Rules
- Final Local Variables
- Button Listeners
- Concurrent Image Download
Module 4 : Function Package
- Interfaces in java.util.function
- Lambda Targets
- IntConsumer
- DoublePredicate
- Predicate Interface
- Refactoring
- BinaryOperator Interface
- Consumer Interface
- Consumer Test
- Supplier Interface
- Supplier Usage
Module 5 : Higher Order Functions
- Returning Lambdas
- From Predicate
- and, or
- negate, isEqual
- From Function
- andThen
- compose, identity
- From Consumer
- andThen
- Custom Methods
- Typing Issues
Module 6 : Streams Intro
- Building Streams
- Characteristics of Streams
- Method Types
- Primitive Streams
- Converting Streams
- forEach, map and filter
- findFirst and findAny
- toArray and collect
- Optional Class
- Lazy evaluation
- Short Circuit Operations
Module 7 : Stream Operations
- limit and skip
- sorted and distinct
- noneMatch and allMatch
- anyMatch and count
- IntStream
- DoubleStream
- LongStream
- Reduction Operations
- reduce
- min and max
- sum and average
Module 8 : Parallel Streams
- Traditional Loops
- Stream Approach
- Parallel versus Concurrent
- Fork and Join
- Parallel Reduction
- No Global Data
- Associative Operation
- Performance Comparison
- Infinite Streams
- generate, iterate and collect
- Grouping