[JAVA] Processus de terminaison de flux

Processus de génération de flux et Processus intermédiaire de flux Traitez le type d'élément auquel le Stream se terminera après avoir été traité dans

trouver le système

Utilisé pour rechercher et vérifier si des éléments restent

List<String> list = Arrays.asList("a","b","c","d","e");

// findFirst
String a = list.stream().filter(s -> s.equals("a")).findFirst().orElse(null);

// findAny
String any = list.stream().filter(s -> s.equals("a")).findAny().orElse(null);

système de match

Déterminer si l'une des expressions conditionnelles spécifiées s'applique

List<String> list = Arrays.asList("alex","benjamin",null,"","elsa");

boolean nonNull = list.stream().allMatch(Objects::nonNull); //false

boolean isEmpty = list.stream().anyMatch(""::equals); //true

boolean isTom = list.stream().noneMatch("tom"::equals); //true

toArray Utilisé lorsque vous souhaitez traiter en tant qu'élément de tableau Notez que le traitement avec toArray (sans argument) donnera Object [].

List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");

Integer[] length = list.stream().map(String::length).toArray(Integer[]::new);

collect Utilisé lorsque vous souhaitez traiter comme un élément de collection tel que List C'est facile à utiliser, donc je l'utilise souvent (petite sensation moyenne)

List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");

List<Integer> length = list.stream().map(String::length).collect(Collectors.toList());

count Agréger le nombre d'éléments Stream qui ont terminé le traitement de génération et le traitement intermédiaire

List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");

long count = list.stream().filter(s -> s.length() == 4 ).count(); // 2

forEach Itérateur interne ajouté dans Java 8 En fait, il peut également être utilisé pour Stream. Je pense que vous devriez utiliser le standard forEach () Les deux exemples ci-dessous donnent le même résultat

Certains disent que Stream for Each est traité comme une contre-indication (Parce que c'est un Stream pour la conversion en d'autres éléments, mais il ne renvoie pas de valeur)

List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");

// stream().forEach()
list.stream().filter(s -> s.length() == 4 ).forEach(System.out::println);

// list.forEach()
list.forEach(s -> {{if (s.length() == 4)System.out.println(s);}});

min,max Pendant l'édition

Recommended Posts

Processus de terminaison de flux
Terminaison du flux Java
[Java] Stream API - Traitement de l'arrêt du flux
Jeu d'Ogawa
Memo Stream
Mémo API Stream
Essayez Java 8 Stream
API Java Stream
Processus de génération de flux
Étudier Java 8 (Stream)
Traitement intermédiaire de flux
[Java] Traitement de flux
Principes de base de l'API Stream
Java 9 Facultatif :: stream