Java 8 : Vue d'ensemble — API fonctionnelles, Streams, Date-Time
Java 8 (mars 2014) est une version majeure apportant : programmation fonctionnelle, nouveau moteur JavaScript (Nashorn), API Date-Time, Stream API, etc.
Fonctionnalités clés
- Expressions lambda : capacité de traitement fonctionnel.
- Références de méthode : référencer des fonctions par nom.
- Méthodes par défaut : implémentation par défaut dans les interfaces.
- Nouveaux outils :
jdepspour analyser les dépendances. - Stream API : traitement par pipeline déclaratif.
- Date Time API : API date/heure moderne (
java.time). - Optional : meilleures pratiques pour gérer l'absence de valeur.
- Nashorn : moteur JavaScript basé sur JVM.
Exemple : tri avec lambda vs Java 7
import java.util.*;
public class Java8Tester {
public static void main(String[] args) {
List<String> names1 = Arrays.asList("Mahesh", "Suresh", "Ramesh", "Naresh", "Kalpesh");
List<String> names2 = new ArrayList<>(names1);
System.out.println("Tri Java 7 :");
sortUsingJava7(names1);
System.out.println(names1);
System.out.println("Tri Java 8 :");
sortUsingJava8(names2);
System.out.println(names2);
}
// Java 7 : classe anonyme
private void sortUsingJava7(List<String> names) {
Collections.sort(names, new Comparator<String>() {
@Override public int compare(String s1, String s2) { return s1.compareTo(s2); }
});
}
// Java 8 : expression lambda
private void sortUsingJava8(List<String> names) {
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
}
}
Sortie
Tri Java 7 : [Kalpesh, Mahesh, Naresh, Ramesh, Suresh]
Tri Java 8 : [Kalpesh, Mahesh, Naresh, Ramesh, Suresh]
La méthode sortUsingJava8 utilise une lambda comme comparateur, bien plus concise.
Java
- Maîtriser les chaînes C# : Fondamentaux, opérations et techniques avancées
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les représentations en chaînes dans les enums Java
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Méthode Java String length() : Comment obtenir la taille d'une chaîne (Exemple)
- Maîtriser Java String.indexOf() : Localiser des sous-chaînes et exemples pratiques