【Java 8 新特性】Java 8 Collectors:joining()使用示例
文章目录
- 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()使用示例相关推荐
- Java 10新特性
Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...
- Java 8 新特性 宋红康跟学
Java 8 新特性 Java 8 新特性简介 思维导图 并行流与串行流 Lambda表达式 Lambda 表达式语法 语法格式一:无参,无返回值,Lambda体只需一条语句 语法格式二:Lambda ...
- java自动化测试语言高级之Java 9 新特性
java自动化测试语言高级之Java 9 新特性 文章目录 java自动化测试语言高级之Java 9 新特性 Java 9 新特性 Java 9 新特性 Java 9 发布于 2017 年 9 月 2 ...
- java自动化测试语言高级之Java 8 新特性
java自动化测试语言高级之Java 8 新特性 文章目录 java自动化测试语言高级之Java 8 新特性 Java 8 新特性 Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 ...
- 七、Java 14 新特性
七.Java 14 新特性 Java 14 已如期于 2020 年 3 月 17 日正式发布,此次更新是继半年前 Java 13 这大版本发布之后的又一次常规版本更新,即便在全球疫情如此严峻形势下,依 ...
- 【Stream流学习】Java 8 新特性|Collectors.joining() 案例详解
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- stream distinct去重_再来看看Java的新特性——Stream流
半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional.其中Stream提高了看法效率,让代码看起来十分清爽. 为什么要使用流? 摘要中已经说明了,为了提高开发效率.流 ...
- Java 8 新特性之Stream API
1. 概述 1.1 简介 Java 8 中有两大最为重要的改革,第一个是 Lambda 表达式,另外一个则是 Stream API(java.util.stream.*). Stream 是 Java ...
- Java 8 新特性 lambda表达式
/ Created by Manager on 2021/4/1. Java 8 新特性 lambda表达式 StreamAPI 新日期 新注解 */ 视频连接 1https://www.bilibi ...
- Java 8 新特性之Lambda
Java 8 新特性之Lambda.Stream.Optional Java 8 新特性之Lambda.Stream.Optional 速度更快 代码更少(增加了新的语法Lambda表达式) 强大的S ...
最新文章
- mysql三个字段最优索引_mysql 多列索引优化
- 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用
- android自定义图标下载,charts
- 工作310:uni-初始获取数据onload
- murmurhash
- 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
- GBin1专题之Web热点#10
- 基础:用android开发的ASCII码转换器
- pr 导出视频 黑屏 或者 没有画面
- vbs的msgbox的恶搞文件
- 输出纹波和纹波电流测试规范分享
- 个人购买云服务器的必要性和最常见几个用途?细节考虑
- WebRTC 源码分析
- 什么时候?才可以千秋万代一统江湖!!!
- Photoshop CS2 视频教程-PS锁定图层(转)
- 数据库规范化三个范式应用实例
- 线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
- 华为V8手机USB OTG Type-C接口数据线
- linux 刷流量ip,程序员同事问shell脚本刷流量,不讨巧帮他填了一个巨坑
- java jar manifest文件,java打包jar,以及manifest文件使用说明