java8 stream流入门

      学习流之前建议先学习lambda表达式的应用。

1.流简介

    Stream的优点:声明性,可复合,可并行。这三个特性使得stream操作更简洁,更灵活,更高效。

    Stream的操作有两个特点:可以多个操作链接起来运行;内部迭代;

    集合和流的区别:集合包含目前的所有元素,你要什么就去集合里取。流是你要什么,然后去计算得到你需要的值。流是按照需求生成的。

    流只能遍历一次,用完之后就不存在了,只能重新创建流才能使用。例如:

		IntStream i = IntStream.of(1,2,3,4);
		i.forEach(System.out::println);<!--forEach输入Consumer-->
		i.forEach(System.out::println);<!--报错,stream has already been operated upon or closed-->
    Collection接口使用的迭代,比如for-each,叫做外部迭代。流则是内部迭代,你只要告诉它干什么就行了。外部迭代你可以看到每一次迭代,而内部迭代你看不到,流帮你做了。

2.流操作

    java.util.stream.Stream有许多操作,但是可以分为两类:一种为中间操作,一种为终端操作。

   中间操作就是操作后返回一个流,比如map,filter,limit等等,中间操作只有在终端操作时才执行。

   终端操作就是把流变为结果不是流的值,比如void,List,Integer等等。比如forEach,count,collect等等。

   使用流一般包含三个动作:生成流,中间操作,终端操作。

3.使用流

   3.1构建流

       由值生成流:
		IntStream i = IntStream.of(1,2,3,4);
		Stream<String> s = Stream.of("a","b","c");
		Stream<String> emptyStream = Stream.empty();<!--创建一个空的流-->
       由数组创建流:
		int[] numbers = {1,2,3,4};
		IntStream intStream = Arrays.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值