J'ai participé au JJUG CCC 2018 Fall. J'ai personnellement résumé le contenu de la conférence # ccc_g4 de @ skrb.
** Stream est un itérateur simple **
Mohamed Ali danse comme un papillon et poignarde comme un bol C'est une expression lambda qui s'écrit comme une fonction et se comporte comme une classe.
Fonction <============ Lambda expression ============> Classe
Traitement: décrit comme une fonction, état + traitement
Se comporter comme une classe
Beaucoup de gens qui l'ont essayé une fois mais n'ont pas compris
Exemple: pour faire une omelette, la dénaturation thermique de la protéine est de 60 degrés, et il y a une réaction mailerd ... Même si vous le savez, vous pouvez y arriver sans vous en soucier, non? ??
** Parce que c'est un nouveau concept, habituez-vous-y plutôt que de l'apprendre. Vous n'avez qu'à comprendre le mécanisme après avoir commencé à appeler. ** **
Je pense qu'il est traité et traité plutôt qu'une boucle. Je ne veux pas créer une classe pour la traiter. → Expression Lambda Comment décrire le traitement qui détermine uniquement les arguments et les valeurs de retour
(Argument) -> {
toDO
return val;
}
** Réassemblez ce que vous voulez faire du point de vue du traitement des données. Simplifiez le processus et divisez-le en 1 processus-> 4 processus simples-> Enfin encadré avec toList () etc. Il est bon de commencer par pour chacun et d'essayer progressivement map-> filter etc. **
Fonction <T, R> avec 1 valeur de retour d'argument
1 argument de valeur de retour booléen Predicate
// Mec basique
(String s) -> { return s.length();
// Le type est facultatif
(s) -> { return s.length();
// le retour peut être omis pour une ligne
(s) -> s.length();
// () peut être omis s'il s'agit d'un argument
s -> s.length();
L'IDE le fera pour vous même si vous ne vous en souvenez pas.
Exemple: Extrayez les mots commençant par un a inférieur dans la liste.
example.java
List<String> words = new ArrayList<>() {
{
add("apple");
add("toast");
add("about");
add("sun");
}
};
var results = words.stream()
.map(word -> word.toLowerCase())
.filter(word -> word.startsWith("a"))
.collect(Collectors.toList());
System.out.println(results);
Stream est nul garanti, vous n'avez donc pas à faire un nouveau ArrayList () pour un tableau de sorties. Il y en a que vous ne pouvez pas jouer avec Stream, alors n'en faites pas trop.
Q&A Q1. Je pense que la section de traitement de conversion peut faire référence à la méthode. A1. Vous pouvez écrire. Cependant, ce n'est pas très préférable car il n'est pas convivial pour le lecteur. Q2. L'exception ne fonctionne pas. Existe-t-il une meilleure pratique R2. Il n'y a pas de réponse correcte. Utilisez soit
La personne elle-même a déjà publié le Matériel de présentation, donc cet article est pour référence seulement.
Recommended Posts