Stream流

​ 就像工厂流水线一样,通过对产品的一系列改造,最后得出商品

1.先获取一条Stream流,并把数据放上去

image-20250715145212013

2.Stream流中间方法

image-20250715151404682

  • filter过滤
1
2
3
4
5
6
7
8
9
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list,"a","b","c","d","e");
Stream<String> stream1 = list.stream();
stream1.filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.equals("a");
}
}).forEach(s -> System.out.println(s));

return 如果是true,则返回,false,则不返回

也可以接上自己想要的条件

建议使用链式方程,代码更简洁

1
stream1.filter(s -> s.equals("a")).forEach(s -> System.out.println(s));
  • limit
1
stream1.limit(2).forEach(s -> System.out.println(s));
  • skip
1
stream1.skip(2).forEach(s -> System.out.println(s));
  • distinct
1
stream1.distinct().forEach(s -> System.out.println(s));
  • contact

  • map

3.Stream流中的终结方法

image-20250715155911140

其中collect要用

1
.collect(Collectors.类型)

如果是双列集合map的话

1
2
.collec(Collectors.toMap(键的规则,值的规则))

其中键和值的规则的格式为

1
2
3
4
5
6
7
8
9
10
11
.collect(Collectors.toMap(new Function<流当中数据的类型, 键的类型>() {
@Override
public String apply(String s) {

}
}, new Function<流当中数据的类型, 值的类型>() {
@Override
public Integer apply(String s) {

}
}));

最后华为lambda表达式即可

1
.collect(Collectors.toMap(s -> s., s -> s.));

或者在复习一下收集方法collect超详解