Formation Java 8 et lambdas

API Stream et Collectors

sablier-violet  Durée : 2 jours

Référence : JV 01

Réservez votre session

PARIS

29 Mai 2017

1390 € HT











Objectifs

Présenter la nouvelle syntaxe introduite en Java 8 : les « lambda expressions »
Aborder le nouveau concept d’interface fonctionnelle introduit en Java 8
Présenter l’API Stream et les Collectors, API nouvellement créée, et qui vise à exploiter pleinement ces nouveaux concepts dans le cadre du traitement de données

Public

Développeurs Java

Pré-requis

Bonne connaissance du langage Java et de ses principales API, notamment l’API Collection

Méthodes pédagogiques

50% théorie / 50% pratique

Modalités d’évaluation

modalites_d_evaluation

Nos intervenants

nos_intervenants

Description

L’introduction des lambdas en Java 8 constitue une révolution pour le développeur. Des modifications profondes du langage sont introduites, ainsi que des patterns, notamment ceux du framework Collection. Les habitudes de développement introduites en 1998 sont en train d’évoluer et permettent de traiter les collections de très grande taille (entre autres) avec efficacité.

Cette formation a pour objet de présenter les nouveautés du langage (les lambdas) au travers d’exemples précis issus de projets réels.  Elle introduit la nouvelle API Stream, construite pour tirer parti de ces nouveautés dans le cas du traitement des collections de très grande taille. L’API Collector est également présentée en détails. Les nouveaux patterns introduits par ces deux API sont tous examinés en détails, sur des exemples concrets.

Programme

Présentation

  • Traitement de données jusqu’en Java 7, rappels sur le pattern iterator
  • Présentation de l’algorithme map / filter / reduce, application avec l’API Collection

 

Expression lambda

  • Introduction des expressions lambda sur quelques exemples
  • Règles d’écriture détaillées des expressions lambda
  • Notion d’interface fonctionnelle, compatibilité ascendante
  • Syntaxe method reference, exemples
  • Accès à l’état englobant d’une expression lambda
  • Utilisation du mot-clé this dans une expression lambda
  • Implémentation et performances

 

Interfaces fonctionnelles

  • Définition d’une interface fonctionnelle, exemples
  • Interfaces fonctionnelles dans le JDK 8
  • Écriture d’interfaces fonctionnelles, exemples
  • API Collection et lambda expressions : évolutions des interfaces existantes
  • Nouvelles interfaces Java 8 : méthodes par défaut, méthodes statiques. Perspectives Java 9
  • Utilisation pour de nouveaux patterns, exemples du JDK 8

 

L’API Collection en Java 8

  • Panorama des nouvelles fonctionnalités
  • Patterns for-each, replace-if, do-if-absent, do-if-present
  • Fusion de tables de hachage

 

L’API Stream en Java 8

  • Problématique de l’implémentation du map / filter / reduce avec l’API Collection
  • Notion de Stream : définitions, exemples
  • Patterns de création de streams
  • Opérations intermédiaires et terminales sur les streams, exemples
  • Étape de réduction, patterns
  • Problématiques des streams vides, introduction d’optional
  • Utilisation avancée d’optionals, exemples, patterns fondamentaux

 

Notion de collector

  • Réduction simple et réduction complexe
  • Notion de réduction mutable, exemples
  • Notion de collector, patterns, exemples
  • Classe Collectors
  • Écriture de collectors non disponibles dans le JDK