- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Lambdas en Streams van SpiralTrain leren de deelnemers functioneel programmeren met de in Java toegevoegde Stream libraries. De functionele programmeer constructies zijn een aanvulling op object georiënteerd programmeren in Java en de twee benaderingen sluiten elkaar niet uit.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Goede kennis van en ervaring met programmeren in Java is vereist, maar het is niet noodzakelijk om diepgaande kennis van Java 8 te hebben.
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.
Deelnemers ontvangen na succesvolle afronding van de cursus een certificaat Lambdas and Streams.
Module 1 : Java 8 Review |
Module 2 : Lambdas Intro |
Module 3 : Method References |
|
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 |
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 |
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 |
Module 5 : Higher Order Functions |
Module 6 : Streams Intro |
|
Interfaces in java.util.function Lambda Targets IntConsumer DoublePredicate Predicate Interface Refactoring BinaryOperator Interface Consumer Interface Consumer Test Supplier Interface Supplier Usage |
Returning Lambdas From Predicate and, or negate, isEqual From Function andThen compose, identity From Consumer andThen Custom Methods Typing Issues |
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 |
Module 8 : Parallel Streams |
|
|
limit and skip sorted and distinct noneMatch and allMatch anyMatch and count IntStream DoubleStream LongStream Reduction Operations reduce min and max sum and average |
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 |