中间操作符
流方法 | 含义 | 示例 |
---|---|---|
filter | 用于通过设置的条件过滤出元素 | List list = Arrays.asList(“abc”,"",“bc”,“efg”,“abcd”,“jkl”); List filterList = list.stream().filter(str -> str.contains(“f”)).collect(Collectors.toList()); |
distinct | 返回一个元素各异的流 | List res = list.stream().distinct().collect(Collectors.toList()); |
limit | 返回一个不超过给定长的流 | List res = list.stream().limit(3).collect(Collectors.toList()); |
skip | 返回一个扔掉了前n个元素的流 | List res = list.stream().skip(2).collect(Collectors.toList()); |
map | 对流中的所有元素做统一处理 | List res = list.stream().map(str -> str.concat(“vx-”)).collect(Collectors.toList()); |
flatMap | 与map类似,但是会将生成的单个流合并起来,即扁平化为一个流 | List res = list.stream().flatMap(str -> Test1.getCharacterByString(str)).collect(Collectors.toList()); |
sorted | 返回排序后的流 | List res = list.stream().sorted().collect(Collectors.toList()); |
终止操作符
流方法 | 含义 | 示例 |
---|---|---|
anyMatch | 集合中是否有一个元素满足条件 | boolean res = list.stream().anyMatch(s -> s.contains(“abc”)); |
allMatch | 集合中是否所有元素满足条件 | boolean res = list.stream().allMatch(s -> s.contains(“abc”)); |
noneMatch | 集合中是否所有元素都不满足条件 | boolean res = list.stream().noneMatch(s -> s.contains(“abc”)); |
findAny | 返回集合中任意元素(需要使用并行流) | |
findFirst | 返回集合中的第一个元素 | |
forEach | 遍历流 | list.stream().forEach(s -> System.out.println(s)); |
collect | 收集器,将流转换成其他形式 | |
reduce | 可以将流中的元素返回结合起来得到一个值 | |
count | 返回流中的元素总数 |