Skip to main content

Dernière fonctionalités utiles du JDK 17

Depuis JDK 8

  • Les lambdas qui sont des fonctions anonymes dans des variables
  • Les interfaces fonctionnelles, c'est comme une interface mais pour une seule méthode pour les lambdas
  • Default methods in interfaces, qui permettent de mettre du code par défault dans des interfaces
  • Stream API, permet de mettre une liste et de la traiter de manière fonctionnelle. Par exemple à la place d'utiliser des boucles on peut simplement faire un .filter(n -> n % 2 == 0) sur un stream
  • Date and time API qui permet de simplifier l'accès au date et au temps

Stream API

Pour expliquer plus en détails les avantages de la stream API, voici quelques exemples de code avec et sans stream.

Les streams API sont assez important et sont attendu à l'AI.

  1. Exemple 1

    Sans stream api :

    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    for (int number: numbers) {
        if (number % 2 == 0) {
            System.out.println(number);
        }
    }
    

    Avec stream api :

    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    numbers.stream().filter(n -> n % 2 == 0).forEach(System.out::println);
    
  2. Exemple 2

    Sans stream api :

    List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
    for (String name: names) {
        System.out.println(name.toUpperCase());
    }
    

    Avec stream api :

    List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
    names.stream().map(String::toUpperCase).forEach(System.out::println);