stream判断数组长度大于0_Java8新特性Stream的完全使用指南

什么是Stream

Stream是Java 1.8版本开始提供的一个接口,主要提供对数据集合使用流的方式进行操作,流中的元素不可变且只会被消费一次,所有方法都设计成支持链式调用。使用Stream API可以极大生产力,写出高效率、干净、简洁的代码。

如何获得Stream实例

Stream提供了静态构建方法,可以基于不同的参数创建返回Stream实例

使用Collection的子类实例调用stream()或者parallelStream()方法也可以得到Stream实例,两个方法的区别在于后续执行Stream其他方法的时候是单线程还是多线程

Stream stringStream = Stream.of("1", "2", "3");

//无限长的偶数流

Stream evenNumStream = Stream.iterate(0, n -> n + 2);

List strList = new ArrayList<>();

strList.add("1");

strList.add("2");

strList.add("3");

Stream strStream = strList.stream();

Stream strParallelStream = strList.parallelStream();

filter

filter方法用于根据指定的条件做过滤,返回符合条件的流

Stream numStream = Stream.of(-2, -1, 0, 1, 2, 3);

//获得只包含正数的流,positiveNumStream -> (1,2,3)

Stream positiveNumStream = numStream.filter(num -> num > 0);

map

map方法用于将流中的每个元素执行指定的转换逻辑,返回其他类型元素的流

Stream numStream = Stream.of(-2, -1, 0, 1, 2, 3);

//转换成字符串流

Stream strStream = numStream.map(String::valueOf);

mapToInt mapToLong mapToDouble

这三个方法是对map方法的封装,返回的是官方为各个类型单独定义的Stream,该Stream还提供了适合各自类型的其他操作方法

Stream stringStream = Stream.of("-2", "-1", "0", "1", "2", "3");

IntStream intStream = stringStream.mapToInt(Integer::parseInt);

LongStream longStream = stringStream.mapToLong(Long::parseLong);

DoubleStream doubleStream = stringStream.mapToDouble(Double::parseDouble);

flatMap

flatMap方法用于将流中的每个元素转换成其他类型元素的流,比如,当前有一个订单(Order)列表,每个订单又包含多个商品(itemList),如果要得到所有订单的所有商品汇总,就可以使用该方法,如下:

Stream allItemStream = orderList.stream().flatMap(order -> order.itemList.stream());

flatMapToInt flatMapToLong flatMapToDouble

这三个方法是对flatMap方法的封装,返回的是官方为各个类型单独定义的Stream,使用方法同上

distinct

distinct方法用于

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值