1.filter:对数据进行过滤,只会留下返回值为true的数据
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
test.stream().filter(o->o.equals("tom"));
2.map:对数据进行操作
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
test.stream().map(o->o.substring(1));
3.filterMap:对数据进行操作,结果必须是流数据
例:
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
test.stream().flatMap(Stream.of(o->o.split("o“)));
4.limit(size):流中数据取size个
5.skip(size):流中数据跳过size个
6.concat(stream a,stream b):连接a,b两个流数据,生成新流
7.distinct:对流中数据进行去重,根据数据中equals方法确定
8.peek:调用元素前,对每个元素执行其中的方法
例:在迭代元素前,先打印每个元素的值
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
test.stream().peek(s -> System.out.println(s)).forEach();
终结操作
max:返回最大值
例:查询test中的最大值
List<String> test = new ArrayList<>();
test.add("tom");
test.add("jerory");
Optional<String> max = test.stream().max(String::compareToIgnoreCase);
System.out.println(max.get());
min:返回最小值
findFirst:返回流的第一个非空值
findAny:返回流中任意一个值
foreach:遍历元素
collect:收集元素
生成list
stream.collect(Collectors.toList())
生成set
stream.collect(Collectors.toSet())
生成指定集合
stream.collect(Collectors.toCollection(TreeSet::new))
流中元素用,拼成一个字符串
stream.collect(Collectors.joining(","))
根据某字段进行统计,返回SummaryStatistics
stream.collect(Collectors.summarizingDouble(字段))
收集元素,转为map,当出现key冲突时,调用fun解决
stream.collect(Collectors.toMap(key,value,fun))
根据字段分类分组,结果为map
stream.collect(Collectors.groupingBy(字段))
根据返回值true、false进行分组
stream.collect(Collectors.partitioningBy(断言,返回true or false))