Java Avance
Java : Notation Lambda
Emmanuel ADAM
Universit´e de Valenciennes et du Hainaut-Cambr´esis
UVHC/ISTV-LAMIH
E. ADAM University of Valenciennes Java Avance UVHC/ISTV-LAMIH 1 / 19
Plan
1Java : fonctions lambda
2Fonctions lambda et gestion de listes
Tri de collections
Fonctions de collections
3Les flux : faciliter la s´election, l’agr´egation
Extrait de collections
Flux : recherche de valeurs extrˆemes
Les flux : utilisable une seule fois
Les fournisseurs de flux : utilisables plusieurs fois
Les flux : cr´eation et parcours
Les flux : conversion
Les flux : consommateur et fonctions
E. ADAM University of Valenciennes Java Avance UVHC/ISTV-LAMIH 2 / 19
Java : fonctions lambda
Fonctions lambda : remplacement de classes anonymes
Interface `a unique fonction
Si une interface n’a qu’une fonction, on peut se passer de la
cr´eation d’une classe anonyme.
Supposons l’interface Operation :
interface Operation
{
p u b l i c d o u b l e calcul(d o u b l e a , d o u b l e b ) ;
}
E. ADAM University of Valenciennes Java Avance UVHC/ISTV-LAMIH 3 / 19
Java : fonctions lambda
Fonctions lambda : remplacement de classes anonymes
Instantiation d’une interface
Classiquement on instancie en cr´eant une classe anonyme `a la
vol´ee : le
Operation add = new Operation (){
p u b l i c d o u b l e calcul(d o u b l e a , d o u b l e b )
{
return ( a + b ) ;
}
};
E. ADAM University of Valenciennes Java Avance UVHC/ISTV-LAMIH 4 / 19
Java : fonctions lambda
Fonctions lambda : remplacement de classes anonymes
Instantiation par notation Lambda
En Lambda on ´ecrit :
O p e r a t i o n add = ( a , b )>{return( a+b ) ; };
On peut ´egalement pr´eciser le type :
O p e r a t i o n add = ( double a , double b )>{return( a+b ) ; };
Ou ˆetre plus simple :
O p e r a t i o n add = ( a , b )>(a+b ) ;
De mani`ere g´en´erale : (listes de variables) >code
s’il n’y a qu’un param`etre, les parenth`eses sont facultatives
E. ADAM University of Valenciennes Java Avance UVHC/ISTV-LAMIH 5 / 19
1 / 19 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !