文章目录
前言
我们常常需要将一个容器转化成另一个容器,或是对这个容器中的数据进行批量处理,这时使用Stream流可以大大减少我们的工作量。
一、stream、collect方法
List.stream();//将List转化成stream流;
Stream.collect(转化规则);//将List按照转化规则转化成stream流;
二、转换成其他容器
1.转化成新的List
List<> new = old.stream().collect(Collectors.toList());
2.转化成Map
Map<T,E> new= old.stream().collect(Collectors.toMap(T,E));
3.转换成set集合
Set<> new =old.stream().Collectors.toSet();
4.转换成特定的set集合
TreeSet<> new =old.stream().Collectors.toCollection(TreeSet::new);
二、其他功能
1.过滤
old.stream().filter(f->f.id==5);
保留Stream流中满足filter()中的条件的元素转换成新List,例中条件为id=5的元素。
2.映射
old.stream().map(f.getid());
将Stream流中的元素映射成新的Stream流,例中为从f映射到f的id字段。
3.计算
old.stream().reduce((a, b) -> a + b);
可以理解为
sum = stream流中第一个元素
sum = reduce中方法(sum,下一个元素)
return sum
例中为求所有元素的和。
old.stream().reduce(1,(a, b) -> a + b);
可以理解为
sum = reduce中第一个参数
sum = reduce中方法(sum,下一个元素)
return sum
例中为求所有元素的和并加上1。
4.取前几个元素
old.stream().limit(4);
例中为取前四个元素
5.排序
old.stream().sorted((f1, f2) -> Integer.compare(f2.getWeight(), f1.getWeight()));
按照sorted中方法对元素排序,例中为按照元素的weight排序。
6.去重
old.stream().distinct();
7.查找
7.1.判断是否存在满足条件的元素
old.stream().anyMatch(f -> f.getid() == 5);
7.2.返回第一个满足条件的元素
old.stream().findFirst(f -> f.getid() == 5);
总结
提示:这里对文章进行总结:
以上就是今天要讲的内容,本文简单介绍了Stream流的使用,有疑问可以在评论区回复。