Java 8 之Stream 生成姿势
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 8 之Stream 生成姿势,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1580字,纯文字阅读大概需要3分钟。
内容图文
![Java 8 之Stream 生成姿势](/upload/InfoBanner/zyjiaocheng/683/6b7361cb7159443ca042f9e690496535.jpg)
Stream 的定义
- 支持顺序和并行聚合操作的元素序列
- 可以由数组、集合以及文件转换而成
- Stream 消费完之后便没有了,就想流水一样
- 生成流的“源”是一个不会在操作流的过程中改变
生成流的"姿势"
- 数组生成流
Integer[] arr = {1, 2, 3, 4, 6};//这里可以开成int[] 试试看看结果。。。①
Stream.of(arr)//生成流Stream<Integer>
.forEach(System.out::println);//打印流中的每个元素
- 集合(list)生成流,Collection 接口已经添加了stream 方法,即所有实现改接口的都可以生成流
Arrays.asList(1, 2, 3, 4)//返回list集合
.stream()//转换为Stream<Integer>
.forEach(System.out::println);
- 读文件生成流
Files.lines(Paths.get("E:\\temp\\test.txt"))
.forEach(System.out::println);
-
Stream 自带生成无限流, Stream 类中的有两个静态方法来生成无限流
- 方法签名:public static Stream generate(Supplier s);Supplier 是一个函数式接口,主要作用生产流中的元素
Stream.generate(() -> 1)
.limit(5)//
.forEach(System.out::println);
- 方法签名:public static Stream iterate(final T seed, final UnaryOperator f);seed 就是初始值,UnaryOperator 操作传进来的参数 返回和参数相同的类型
Stream.iterate(5, i -> i + 1)//生成无线流
.limit(5)//使用limit 截断流 这里取前5个,类比sql 的limit
.forEach(System.out::println);
上面两个方法都是生成无限流,下面来讲两个个生成有限流的
- LongStream和IntStream的range()和rangeClosed() 方法,两个方法的参数都是一样:起始值和结束值,类型都是long或者int, 这两个方法的区别是:range方法是不包括结束值,rangeClosed是包含结束值的。
@Test
public void streamRanged() {
IntStream.range(1, 2)
.forEach(System.out::println);
}
结果:
1
@Test
public void streamRangeClosed() {
IntStream.rangeClosed(1, 2)
.forEach(System.out::println);
}
结果:
1
2
大家欢迎指正批评
代码地址
内容总结
以上是互联网集市为您收集整理的Java 8 之Stream 生成姿势全部内容,希望文章能够帮你解决Java 8 之Stream 生成姿势所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】