Stream generation process and Stream intermediate process Process what kind of element the Stream will end after being processed in
Used for searching and checking if elements remain
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);
Determine if there is something that applies to the specified conditional expression
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 Used when you want to process as an array element Note that if you process with toArray (without arguments), it will become Object [].
List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");
Integer[] length = list.stream().map(String::length).toArray(Integer[]::new);
collect Used when you want to process as a Collection element such as List It's easy to use, so I often use it (small average feeling)
List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");
List<Integer> length = list.stream().map(String::length).collect(Collectors.toList());
count Aggregate the number of Stream elements that have completed generation processing and intermediate processing
List<String> list = Arrays.asList("alex","benjamin","charley","dante","elsa");
long count = list.stream().filter(s -> s.length() == 4 ).count(); // 2
forEach Internal iterator added in Java 8 In fact, it can also be used for Stream. I think you should use the standard forEach () Both samples below give the same result
Some say that Stream for Each is treated as a contraindication (Because it is a Stream for converting to other elements, but it does not return a value)
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 While editing
Recommended Posts