文章目录

  • 1.`joining()`方法说明
  • 2.使用`Collectors.joining()`方法拼接包含`String`类型的`List`
  • 2.使用`Collectors.joining()`方法拼接包含`Object`类型的`List`
  • 参考文献

在本页中,我们将提供 java 8 Collectors joining()示例。方法返回收集器实例。它按顺序连接输入元素。我们也可以在元素连接中传递分隔符、前缀和后缀。

1.joining()方法说明

假设我们用以下方式收集元素A、B、C、D。

joining()

它返回用于连接不带分隔符的元素的收集器。对于给定的输入元素,输出字符串将是ABCD。

joining(CharSequence delimiter)

它返回用于将元素与给定分隔符连接起来的收集器。对于给定的输入元素和分隔符(-),输出字符串将是A-B-C-D。

joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

它返回收集器,该收集器用于连接具有给定分隔符、前缀和后缀的元素。对于给定的输入元素,分隔符( - )、前缀( [ )和后缀( ] ),输出字符串将是[A-B-C-D]。

2.使用Collectors.joining()方法拼接包含String类型的List

JoiningExampleWithListOfString.java

package com.concretepage;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class JoiningExampleWithListOfString {public static void main(String[] args) {List<String> list = Arrays.asList("Ram","Shyam","Shiv","Mahesh");String result=  list.stream().collect(Collectors.joining());System.out.println(result);result=  list.stream().collect(Collectors.joining(","));System.out.println(result);result=  list.stream().collect(Collectors.joining("-","[","]"));System.out.println(result);        }
}

输出

RamShyamShivMahesh
Ram,Shyam,Shiv,Mahesh
[Ram-Shyam-Shiv-Mahesh]

2.使用Collectors.joining()方法拼接包含Object类型的List

JoiningExampleWithListOfObject.java

package com.concretepage;
import java.util.List;
import java.util.stream.Collectors;
public class JoiningExampleWithListOfObject {public static void main(String[] args) {List<Person> list = Person.getList();System.out.println("--Join person name--");String result=  list.stream().map(p -> p.getName()).collect(Collectors.joining());System.out.println(result);result=  list.stream().map(p -> p.getName()).collect(Collectors.joining("|"));System.out.println(result);result=  list.stream().map(p -> p.getName()).collect(Collectors.joining("-","[","]"));System.out.println(result);System.out.println("--Join person age--");result=  list.stream().map(p -> String.valueOf(p.getAge())).collect(Collectors.joining());System.out.println(result);result=  list.stream().map(p -> String.valueOf(p.getAge())).collect(Collectors.joining("|"));System.out.println(result);result=  list.stream().map(p -> String.valueOf(p.getAge())).collect(Collectors.joining("-","[","]"));System.out.println(result);       System.out.println("--Join person name-age--");result=  list.stream().map(p -> p.getName()+"-" + p.getAge()).collect(Collectors.joining("|"));System.out.println(result);result=  list.stream().map(p -> p.getName()+"-" + p.getAge()).collect(Collectors.joining("|","[","]"));System.out.println(result);        }
}

Person.java

package com.concretepage;
import java.util.ArrayList;
import java.util.List;
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}public static List<Person> getList() {List<Person> list = new ArrayList<>();list.add(new Person("Ram", 23));list.add(new Person("Shyam", 20));list.add(new Person("Shiv", 25));list.add(new Person("Mahesh", 30));return list;}
}

输出

--Join person name--
RamShyamShivMahesh
Ram|Shyam|Shiv|Mahesh
[Ram-Shyam-Shiv-Mahesh]
--Join person age--
23202530
23|20|25|30
[23-20-25-30]
--Join person name-age--
Ram-23|Shyam-20|Shiv-25|Mahesh-30
[Ram-23|Shyam-20|Shiv-25|Mahesh-30]

参考文献

【1】Java 8 Doc: Collectors
【2】Java 8 Collectors: joining() Example

【Java 8 新特性】Java 8 Collectors:joining()使用示例相关推荐

  1. Java 10新特性

    Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...

  2. Java 8 新特性 宋红康跟学

    Java 8 新特性 Java 8 新特性简介 思维导图 并行流与串行流 Lambda表达式 Lambda 表达式语法 语法格式一:无参,无返回值,Lambda体只需一条语句 语法格式二:Lambda ...

  3. java自动化测试语言高级之Java 9 新特性

    java自动化测试语言高级之Java 9 新特性 文章目录 java自动化测试语言高级之Java 9 新特性 Java 9 新特性 Java 9 新特性 Java 9 发布于 2017 年 9 月 2 ...

  4. java自动化测试语言高级之Java 8 新特性

    java自动化测试语言高级之Java 8 新特性 文章目录 java自动化测试语言高级之Java 8 新特性 Java 8 新特性 Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 ...

  5. 七、Java 14 新特性

    七.Java 14 新特性 Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依 ...

  6. 【Stream流学习】Java 8 新特性|Collectors.joining() 案例详解

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  7. stream distinct去重_再来看看Java的新特性——Stream流

    半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional.其中Stream提高了看法效率,让代码看起来十分清爽. 为什么要使用流? 摘要中已经说明了,为了提高开发效率.流 ...

  8. Java 8 新特性之Stream API

    1. 概述 1.1 简介 Java 8 中有两大最为重要的改革,第一个是 Lambda 表达式,另外一个则是 Stream API(java.util.stream.*). Stream 是 Java ...

  9. Java 8 新特性 lambda表达式

    / Created by Manager on 2021/4/1. Java 8 新特性 lambda表达式 StreamAPI 新日期 新注解 */ 视频连接 1https://www.bilibi ...

  10. Java 8 新特性之Lambda

    Java 8 新特性之Lambda.Stream.Optional Java 8 新特性之Lambda.Stream.Optional 速度更快 代码更少(增加了新的语法Lambda表达式) 强大的S ...

最新文章

  1. mysql三个字段最优索引_mysql 多列索引优化
  2. 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用
  3. android自定义图标下载,charts
  4. 工作310:uni-初始获取数据onload
  5. murmurhash
  6. 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
  7. GBin1专题之Web热点#10
  8. 基础:用android开发的ASCII码转换器
  9. pr 导出视频 黑屏 或者 没有画面
  10. vbs的msgbox的恶搞文件
  11. 输出纹波和纹波电流测试规范分享
  12. 个人购买云服务器的必要性和最常见几个用途?细节考虑
  13. WebRTC 源码分析
  14. 什么时候?才可以千秋万代一统江湖!!!
  15. Photoshop CS2 视频教程-PS锁定图层(转)
  16. 数据库规范化三个范式应用实例
  17. 线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
  18. 华为V8手机USB OTG Type-C接口数据线
  19. linux 刷流量ip,程序员同事问shell脚本刷流量,不讨巧帮他填了一个巨坑
  20. java jar manifest文件,java打包jar,以及manifest文件使用说明

热门文章

  1. Python 的一些日常高频写法总结!
  2. 洛谷4208 最小生成树计数
  3. 一般的度量空间上开集的构造
  4. 物联网-电力监控平台(二)
  5. c语言控制输出间隔大小,C/C++ 输出间隔控制
  6. HCIA-RoutingSwitching华为认证路由交换工程师(持续更新中2%)
  7. P1008 [NOIP1998 普及组] 三连击 题解
  8. 什么人不可以喝普洱熟茶?
  9. 如何让销售管理更高效?
  10. android图片系统解决方案-从采集到显示