Nouveautés de Java 8

Who?

@carimatics


Eh bien, tout le monde


Personnes utilisant Java 8 ou version ultérieure:


Personnes utilisant les nouvelles fonctionnalités de Java 8:


Nouvelles fonctionnalités depuis Java 8

Style Lambda

--Syntaxe pour écrire facilement des fonctions anonymes

Stream API --Application d'expressions lambda aux collections - filter - map - reduce

etc...


j'écrirai


Style Lambda


Renvoie la longueur de la chaîne

Version de classe anonyme

la mise en oeuvre

Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};
int len = countLen.apply("Function class sample!!!");
System.out.println(len); // => 24

problème

――C'est juste long


Raser les choses redondantes


Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};

Function<String, Integer> countLen =
    @Override
    public Integer apply(String s) {
        return s.length();
    }
 ;

Function<String, Integer> countLen =

                        (String s) {
        return s.length();
    }
 ;

Function<String, Integer> countLen = (String s)    { return s.length(); };

Organiser


Function<String, Integer> countLen = (String s) -> { return s.length(); };

Les expressions --Lambda nécessitent -> (jeton de flèche) entre l'argument et le corps


Function<String, Integer> countLen = (String s) ->          s.length()   ;

Function<String, Integer> countLen =         s  ->          s.length()   ;

--Peut être omis si le type d'argument est connu --La chaîne est écrite sur le côté gauche


Function<String, Integer> countLen = s -> s.length();

Organiser (Bien qu'il puisse être changé au format de référence de méthode, il est omis en raison de contraintes de temps)


Renvoie la longueur de la chaîne

Version de classe anonyme

Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};

Version Lambda

Function<String, Integer> countLen = s -> s.length();

Stream API


Valeur moyenne de [1..100]

pour déclaration

double sum = 0.0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
double ave = sum / 100;

Stream API

double ave = IntStream.rangeClosed(1, 100)
        .average()
        .orElse(0.0);

Salaire moyen des hommes dans la trentaine parmi les salariés

pour déclaration

double sumSalary = 0.0;
for (Employee employee : employees) {
    if (30 <= employee.getAge() && employee.getAge() < 40
            && employee.getGender() == Gender.MALE) {
        sumSalary += employee.getSalary();
    }
}
double a = employees.isEmpty() ? 0.0 : sumSalary / employees.size();

Stream API

double averageSalary =
        employees.stream()
                .filter(e -> 30 <= e.getAge() && e.getAge() < 40) //30 s
                .filter(e -> e.getGender() == Gender.MALE)        //Masculin
                .mapToInt(e -> e.getSalary())                     //Un salaire
                .average()                                        //moyenne
                .orElse(0.0);                                     //0 s'il n'y a pas de personne applicable.0

Ce qui est bon avec les expressions lambda et l'API Stream

--Peut être rédigé de manière concise

La fonction Stream API a également été ajoutée à Java9, ce qui est très pratique!


Écrivons tous Kotlin! !!


Kotlin est le meilleur! !!

Recommended Posts

Nouveautés de Java 8
Nouveautés de Java 9,10,11
Quoi de neuf dans Apache Camel 2.19.0
Partition en Java
Changements dans Java 11
java1.8 nouvelles fonctionnalités
Taux circonférentiel à Java
FizzBuzz en Java
J'ai essayé le nouveau yuan à Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Résumé des nouvelles fonctionnalités de Java 12
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
Interface appelable en Java
Résumé des nouvelles fonctionnalités de Java 13
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Résumé des nouvelles fonctionnalités de Java 10
Utiliser PreparedStatement en Java
Résumé des nouvelles fonctionnalités de Java 14
Exécution parallèle en Java
Essayez d'utiliser RocksDB avec Java
[Java] Nouvelle méthode de génération de threads (2)
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Essayez d'appeler JavaScript en Java
Essayez de développer Spresense avec Java (1)
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Nouvelles fonctionnalités de Java7 à Java8
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java