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
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);
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