【辰兮要努力】: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() 案例详解相关推荐

  1. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  2. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  3. java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网

    资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...

  4. java lambda表达式详解_java8新特性-Lambda表达式的详解(从0开始)

    这几天复习了java8的一些新特性,作为一个从java5以来最具革命性的版本,一直没有来得及总结.本系列文章主要是从<java8实战>总结的.这是第一篇文章主要介绍java8的lambda ...

  5. java lambda表达式详解_Java8新特性:Lambda表达式详解

    在 Java 版本的历次更新迭代中,Java8 是一个特殊的存在,与以往的版本升级不同.我们对 Java8 似乎抱有更大的期待,因为它是 Java5 之后最重要的一次升级,提供了十多个新特性,其中 L ...

  6. H5的新特性及部分API详解

    h5新特性总览 移除的元素 纯表现的元素: basefont.big.center.font等  对可用性产生负面影响的元素: frame.frameset.noframes 新增的API 语义: 能 ...

  7. java 面向对象三大特性之继承 万字详解(超详细)

    目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...

  8. java 面向对象三大特性之多态 万字详解(超详细)

    目录 前言 : 一.为什么需要多态 : 1.白璧微瑕 : 2.举栗(请甘雨,刻晴,钟离吃饭): 3.代码 : 4.问题 : 二.什么是多态 : 1.定义 : 2.多态的实现步骤(重要) : 三.多态的 ...

  9. java for新循环_Java for循环详解

    Java for循环详解 for 语句是应用最广泛.功能最强的一种循环语句.大部分情况下,for 循环可以代替 while 循环.do while 循环. for 语句是一种在程序执行前就要先判断条件 ...

最新文章

  1. 对称密码算法Rijndael解析—加密
  2. 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
  3. 一款b站视频下载工具软件mac版
  4. 09(maven+SSH)网上商城项目实战之使用jersey实现应用服务器和图片服务器分离...
  5. 小程序基础能力~网络
  6. 微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码
  7. linux服务器的诗句迁移,使用scp命令在两台linux上对拷文件或者文件夹
  8. 一键换ip命令_软网推荐:高效命令行备份更简单
  9. 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层
  10. 一次完整的HTTP事务分析
  11. Maven环境变量配置及是否成功
  12. 手动链接react native的依赖
  13. Win10 - 彻底禁用Cortana的方法
  14. 基于阿里云的智能插座——(立创EDA项目)
  15. echarts在IE浏览器不显示的问题
  16. 杨百万:上周四全仓杀入股市 这波反弹不是牛市新起点
  17. 运营App渠道推广中,如何统计推广效果?
  18. 添加mysql 函数库_mysql函数创建
  19. 纵有疾风起,人生不言弃
  20. Excel工作表如何修改表名?我的为什么不可以?

热门文章

  1. VNA测量时如何制作一个TRL校准夹具
  2. sqli-labs-maser第1-6关
  3. Jexl表达式引擎(2)
  4. SQL查询和分析跟踪 — SQL Server Profiler
  5. SQL注入靶场:辛巴猫舍
  6. 搜索引擎(网络蜘蛛及搜索引擎基本原理)
  7. java短信登录_JAVA短信验证登录
  8. Java游戏项目之“超级玛丽”实战教程,终于可以制作属于自己的小游戏了
  9. 查看 namespace 下面所有的资源并删除
  10. 数据库学习笔记2(补遗笔记1)