Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!
之前栈长分享过 Java 8 一系列新特性的文章,其中重点介绍了 Stream.
获取上面这份 Java 8~12 系列新特性干货文章,请在微信搜索关注微信公众号:Java技术栈,在公众号后台回复:java。
今天来分享下在 Java 8 中创建 Stream 的 10 种方式,我就整理了 10 种,其实还有更多,仅供大家参考学习下。
1、Stream.of 可变参数
Stream<String> stream1 = Stream.of("A", "B", "C");
System.out.println("stream1:" + stream1.collect(joining()));
程序输出:
stream1:ABC
2、Stream.of 数组
String[] values = new String[]{"A", "B", "C"};
Stream<String> stream2 = Stream.of(values);
System.out.println("stream2:" + stream2.collect(joining()));
程序输出:
stream2:ABC
看 Stream.of 源码,上面这两种方式其实就是第三种方式的包装版。
public static<T> Stream<T> of(T... values) {
return Arrays.stream(values);
}
我们直接使用源码中的方式也是一样的。
3、Arrays.stream
String[] values = new String[]{"A", "B", "C"};
Stream<String> stream3 = Arrays.stream(values);
System.out.println("stream3:" + stream3.collect(joining()));
程序输出:
stream3:ABC
4、List
List<String> list = Arrays.asList("A", "B", "C");
Stream<String> stream4 = list.stream();
System.out.println("stream4:" + stream4.collect(joining()));
程序输出:
stream4:ABC
5、Set
Set<String> set = new HashSet<>(Arrays.asList("A", "B", "C"));
Stream<String> stream5 = set.stream();
System.out.println("stream5:" + stream5.collect(joining()));
程序输出:
stream5:ABC
6、Map
Map<String, String> map = new HashMap<>();
map.put("1", "A");
map.put("2", "B");
map.put("3", "C");
Stream<String> stream6 = map.values().stream();
System.out.println("stream6:" + stream6.collect(joining()));
程序输出:
stream6:ABC
7、Stream.iterate
Stream<String> stream7 = Stream.iterate("A", e -> String.valueOf((char) (e.charAt(0) + 1))).limit(3);
System.out.println("stream7:" + stream7.collect(joining()));
程序输出:
stream7:ABC
8、Pattern
String value = "A B C";
Stream<String> stream8 = Pattern.compile("\\W").splitAsStream(value);
System.out.println("stream8:" + stream8.collect(joining()));
程序输出:
stream8:ABC
9、Files.lines
try {
Stream<String> stream9 = Files.lines(Paths.get("d:/data.txt"));
System.out.println("stream9:" + stream9.collect(joining()));
} catch (IOException e) {
e.printStackTrace();
}
data.txt文件内容如下:
A
B
C
程序输出:
stream9:ABC
10、Stream.generate
Stream<String> stream10 = Stream.generate(() -> "A").limit(3);
System.out.println("stream10:" + stream10.collect(joining()));
程序输出:
stream10:AAA
好了,这是栈长整理的 10 种创建 Stream 的方式,是不是很骚?如果你还知道其他的骚操作,可以留言告诉大家,让大家记住你的头像和ID。
转发分享一下吧,我保证你日后总有机会用得着的。
大量 Java 8~12 的新特性文章我正在编写中,栈长将陆续分享出来,微信搜索关注微信公众号:Java技术栈,公众号将第一时间推送,不要错过。
本文原创首发于微信公众号:Java技术栈(id:javastack),转载请原样保留本信息。
Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!的更多相关文章
- Java中创建线程的两种方式
创建线程的第一种方式: 创建一个类继承Thread 重写Thread中的run方法 (创建线程是为了执行任务 任务代码必须有存储位置,run方法就是任务代码的存储位置.) 创建子类对象,其实就是在创建 ...
- Java值创建线程的两种方式对比
在Java中创建线程的方式有两种,第一种是直接继承Thead类,另一种是实现Runable接口.那么这两种方式孰优孰劣呢? 采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需 ...
- Java 多线程 创建线程的4种方式
1 继承Thread类,重写run方法.Thread类实现了Runnable接口. 2 实现Runnable接口,重写run方法.相比于继承Thread类,可以避免单继承的缺陷和实现资源共享. 举例: ...
- Java中创建线程的三种方式以及区别
在java中如果要创建线程的话,一般有3种方法: 继承Thread类: 实现Runnable接口: 使用Callable和Future创建线程. 1. 继承Thread类 继承Thread类的话,必须 ...
- Java中创建String的两种方式
1.在Java中,创建一个字符串有两种方式 String x = "abc";String y = new String("abc"); 这两种方式有什么区别呢 ...
- java中创建字符串的两种方式(“”与new String())及区别
结论:通过""创建的字符串实际上在java堆中只有一个,而通过new string创建出来的字符串在java堆中占有不同的内存. 第一个True表明这两个在内存中拥有相同的地址,那 ...
- Java多线程——创建线程的两种方式
创建线程方式一:继承Thread类. 步骤:1,定义一个类继承Thread类.2,覆盖Thread类中的run方法.3,直接创建Thread的子类对象创建线程.4,调用start方法开启线程并调用线程 ...
- Java中创建String的两种方式差异
我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd"; String str2 = new String("abcd&qu ...
- Java多线程-----创建线程的几种方式
1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体 创建Thread子类的实例,也就是创建 ...
随机推荐
- IntelliJ idea鼠标移动到类上显示文档document(javadoc)内容
IntelliJ idea鼠标移动到类上显示文档document(javadoc)内容 Step 1:设置鼠标移动到类上自动显示Javadoc文档 step2:为jdk下载javadoc Step3: ...
- 【转】Dubbo分布式服务框架
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的远程服务调用方案. Dubbo架构 官网架构图: 节点角色说明: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务 ...
- Sequelize手记 - (一)
最近开始接触数据库,现在普遍用的都是Mysql数据库,简单的了解了一下sql语句,没有太深入的学习,然后就开始找相关的ORM框架,然后锁定了Sequelize,个人感觉很强大,搜索了一些文档,但是很让 ...
- react新旧生命周期
React16.3.0之前生命周期 16.3开始建议使用新的生命周期
- php在虚拟机和windows上的应用
学习目标:linux+apache+php合在一起的应用 在windows中三者的的关联及应用 php是apache的一个外挂程序,必须依靠web服务器才可以运行.当客户 ...
- java web添加spring jar 包
maven依赖: <properties> <spring.version>5.1.7.RELEASE</spring.version> </properti ...
- 查看Windows系统进程(PID)
语法:tasklist /svc 作用:打印系统进程,并显示其对应PID,可用来跟踪进程并根据PID来进行关闭.
- 【Feign调用异常】org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
一.异常场景描述 明明是post请求,为啥到达服务器后就变成了get请求 2019-05-30 18:07:17.055 [http-nio-10650-exec-4] ERROR c.x.xcaut ...
- 常见数据结构的 Python 实现(建议收藏)
数据结构作为计算机基础的必修内容,也是很多大型互联网企业面试的必考题.可想而知,它在计算机领域的重要性. 然而很多计算机专业的同学,都仅仅是了解数据结构的相关理论,却无法用代码实现各种数据结构. 今日 ...
- 查看Linux 系统的配置,内核版本和增减用户/增减组/增减权限
今天购买了一款腾讯云服务器,一年120RMB 配置也很一般 1核的CPU 2GB内存 1Mbps 带宽 普通云硬盘 50G 操作系统: CentOS 7.2.64 现在来验收一下 17 2019-0 ...