【Stream流学习】Java 8 新特性|Collectors.joining() 案例详解
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里…
文章目录
- 一、文章序言
- 二、案例实践
一、文章序言
本篇用案例的形式学习一下Java 8 新特性|Collectors.joining()
业务场景:在项目中我们常常要对list集合的数据做一些字符串拼接/处理等相关操作
常见的案例如下
/*** @program: RecursionAlgorithm* @description: Java 8 新特性|Collectors.joining()* @author: 辰兮要努力* @create: 2021-10-02 11:01*/
public class StreamDemo {public static void main(String[] args) {List<String> list = Arrays.asList("辰兮","2021","要努力");String result= list.stream().collect(Collectors.joining());System.out.println(result);}
}
输出结果
辰兮2021要努力
Collectors.joining() 方法以遭遇元素的顺序拼接元素。我们可以传递可选的拼接字符串、前缀和后缀
分隔符:delimiter
前缀:prefix
后缀:suffix
二、案例实践
来一起学习一下相关的Collectors.joining() 方法
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;/*** @program: RecursionAlgorithm* @description: Java 8 新特性|Collectors.joining()* @author: 辰兮要努力* @create: 2021-10-02 11:01*/
public class StreamDemo {public static void main(String[] args) {final String[] strings = {"x", "y", "z"};Stream<String> stream1 = Stream.of(strings);Stream<String> stream2 = Stream.of(strings);Stream<String> stream3 = Stream.of(strings);Stream<String> stream4 = Stream.of(strings);Stream<String> stream5 = Stream.of(strings);// 拼接成 [x, y, z] String result1 = stream1.collect(Collectors.joining(", ", "[", "]"));// 拼接成 x | y | z String result2 = stream2.collect(Collectors.joining(" | ", "", ""));// 拼接成 x -> y -> z] String result3 = stream3.collect(Collectors.joining(" -> ", "", ""));//[x, y, z]System.out.println(result1);//x | y | zSystem.out.println(result2);//x -> y -> zSystem.out.println(result3);//[x.y.z]String result4 = stream4.collect(Collectors.joining(".","[","]"));//xyz
// String result4 = stream4.collect(Collectors.joining(""));System.out.println(result4);}
}
输出结果
[x, y, z]
x | y | z
x -> y -> z
[x.y.z]
如上案例均可以在自己电脑实践
Java 8 流 ( stream ) 收集器 ( Collectors ) 中的 joining() 方法。该方法会返回一个 Collectors 实例,方便在流收集器上的链式操作
源码如下
/*** Returns a {@code Collector} that concatenates the input elements,* separated by the specified delimiter, with the specified prefix and* suffix, in encounter order.** @param delimiter the delimiter to be used between each element* @param prefix the sequence of characters to be used at the beginning* of the joined result* @param suffix the sequence of characters to be used at the end* of the joined result* @return A {@code Collector} which concatenates CharSequence elements,* separated by the specified delimiter, in encounter order*/public static Collector<CharSequence, ?, String> joining(CharSequence delimiter,CharSequence prefix,CharSequence suffix) {return new CollectorImpl<>(() -> new StringJoiner(delimiter, prefix, suffix),StringJoiner::add, StringJoiner::merge,StringJoiner::toString, CH_NOID);}
希望如上的案例能帮助大家了解Collectors.joining() 的相关操作,更好的处理项目中不同的业务场景
小伙伴们国庆假期愉快!爱生活、爱自己、爱你所在的每一天!
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞
【Stream流学习】Java 8 新特性|Collectors.joining() 案例详解相关推荐
- Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍
前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...
- Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机
前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...
- java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网
资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...
- java lambda表达式详解_java8新特性-Lambda表达式的详解(从0开始)
这几天复习了java8的一些新特性,作为一个从java5以来最具革命性的版本,一直没有来得及总结.本系列文章主要是从<java8实战>总结的.这是第一篇文章主要介绍java8的lambda ...
- java lambda表达式详解_Java8新特性:Lambda表达式详解
在 Java 版本的历次更新迭代中,Java8 是一个特殊的存在,与以往的版本升级不同.我们对 Java8 似乎抱有更大的期待,因为它是 Java5 之后最重要的一次升级,提供了十多个新特性,其中 L ...
- H5的新特性及部分API详解
h5新特性总览 移除的元素 纯表现的元素: basefont.big.center.font等 对可用性产生负面影响的元素: frame.frameset.noframes 新增的API 语义: 能 ...
- java 面向对象三大特性之继承 万字详解(超详细)
目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...
- java 面向对象三大特性之多态 万字详解(超详细)
目录 前言 : 一.为什么需要多态 : 1.白璧微瑕 : 2.举栗(请甘雨,刻晴,钟离吃饭): 3.代码 : 4.问题 : 二.什么是多态 : 1.定义 : 2.多态的实现步骤(重要) : 三.多态的 ...
- java for新循环_Java for循环详解
Java for循环详解 for 语句是应用最广泛.功能最强的一种循环语句.大部分情况下,for 循环可以代替 while 循环.do while 循环. for 语句是一种在程序执行前就要先判断条件 ...
最新文章
- 对称密码算法Rijndael解析—加密
- 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
- 一款b站视频下载工具软件mac版
- 09(maven+SSH)网上商城项目实战之使用jersey实现应用服务器和图片服务器分离...
- 小程序基础能力~网络
- 微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码
- linux服务器的诗句迁移,使用scp命令在两台linux上对拷文件或者文件夹
- 一键换ip命令_软网推荐:高效命令行备份更简单
- 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层
- 一次完整的HTTP事务分析
- Maven环境变量配置及是否成功
- 手动链接react native的依赖
- Win10 - 彻底禁用Cortana的方法
- 基于阿里云的智能插座——(立创EDA项目)
- echarts在IE浏览器不显示的问题
- 杨百万:上周四全仓杀入股市 这波反弹不是牛市新起点
- 运营App渠道推广中,如何统计推广效果?
- 添加mysql 函数库_mysql函数创建
- 纵有疾风起,人生不言弃
- Excel工作表如何修改表名?我的为什么不可以?