1、使用【流+Collectors】转换

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test; /**
* 功能测试
*
* @author wzw
* @date 2021/7/24
*/
public class wzwTest { /**
* 功能描述: 将List<Integer>转为String并用逗号分割
*
* @author 王子威
* @param null
*/
@Test
public void test() {
// 案例集合
List<Integer> orderList = new ArrayList<>();
orderList.add(1);
orderList.add(2);
orderList.add(3);
orderList.add(4); // 用流将List<String>获取集合中的数,然后用Collectors.joining(“分隔符”)来进行内部分割,达到转String的目的
String subList = orderList.stream().map(String::valueOf).collect(Collectors.joining(",")); // subList = 1,2,3,4
System.out.println("subList = " + subList);
} }

  

2、使用谷歌的Joiner

import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Joiner;
import org.junit.Test;
import com.bessky.pss.common.util.CommonUtils; /**
* 功能测试
*
* @author wzw
* @date 2021/7/24
*/
public class wzwTest { /**
* 功能描述: 将List<Integer>转为String并用逗号分割
*
* @author 王子威
* @param null
*/
@Test
public void test() {
// 案例集合
List<Integer> orderList = new ArrayList<>();
orderList.add(1);
orderList.add(2);
orderList.add(3);
orderList.add(4); // 使用谷歌的分割方法
String subList = Joiner.on(",").join(orderList);
     // 结果:subList = 1,2,3,4
System.out.println("subList = " + subList);
} }

3、使用String.join方法(不用需要CharSequence类型的子类才行,并且需要同类型)

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test; /**
* 功能测试
*
* @author wzw
* @date 2021/7/24
*/
public class wzwTest { /**
* 功能描述: 将List<Integer>转为String并用逗号分割
*
* @author 王子威
* @param null
*/
@Test
public void test() {
// 案例集合
List<Integer> orderList = new ArrayList<>();
orderList.add(1);
orderList.add(2);
orderList.add(3);
orderList.add(4); // 用流先将:List<Integer>集合转为List<String>
List<String> collect = orderList.stream().map(String::valueOf).collect(Collectors.toList());
// 使用String.join方法将List<String>转为String,并用逗号分割
String subList = String.join(",", collect); // subList = 1,2,3,4
System.out.println("subList = " + subList);
} }

3、总结

  • 第1、3方式类似。最后的本质都是使用StringJoiner类的有参构造
  • 我更倾向用1和2。

集合流之“将List<Integer>转为String并用逗号分割”的更多相关文章

  1. string通过逗号分割不用split方法

    package com.simon; import java.util.ArrayList; import java.util.Iterator; import java.util.List; pub ...

  2. 集合流之"交集(相同)和差集(区别的)"的使用

    一.需求 今天做的是将两个字符串转为数组后再转集合,然后利用集合的流stream来进行差集过滤 二.差集代码 差集:将两个集合相同的数据去掉,留下不同的数据 1 @Test 2 public void ...

  3. java语言中Object转为String的几种形式

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...

  4. Object转Integer,String

    object先转为字符串,然后通过int 的封装类(Integer)的pasreInt()方法转为int 例如: Object  ob = 123; Integer.parseInt(String.v ...

  5. Integer、String、StringBuffer、StringBuilder

    Integer Interger 是int基本数据类型的包装类,在Integer内部封装了一个final int value的属性. 构造方法: Integer类提供了两种构造方法:它们都会返回一个I ...

  6. Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么?

    Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么? Integer.valueof(String s)是将一个包装类是将一个实际 ...

  7. [C#]List<int>转string[],string[]转为string

    // List<int>转string[] public string[] ListInt2StringArray(List<int> input) { return Arra ...

  8. Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别

    通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...

  9. java 13-4 Integer和String、int之间的转换,进制转换

    1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...

随机推荐

  1. Ecma335、CLR、CLI、CTS、 IL、.net 以及他们之间的关系

    以上是个人对他们直接关系的理解:图片是原创 CLI 通用语言基础架构(Common Language Infrastructure), CLI是一个开放型的技术规范,它定义了一个语言无关的跨体系结构的 ...

  2. Java多线程编程核心技术---多线程技能

    1.继承Thread /** * Copyright (C), 2018-2018, * FileName: MyThread * Author: 大象 * Date: 2018-06-08 22:3 ...

  3. 哈工大 计算机网络 实验二 可靠数据传输协议(停等协议与GBN协议)

    计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 可靠数据传输协议(停等协议与GBN协议) 实验目的: 本次实验的主要目的. 理解可靠数据传输的基本原理:掌握停等协议的工作原理: ...

  4. C语言while循环语句

    循环语句三要素 1.在循环外给循环变量赋初值2.进入循环判断循环变量3.在循环体内修改循环变量,使循环趋近结束 2021-11-02

  5. k8s 中 nfs作为存储的三种方式

    1.安装nfs服务.直接给命令 yum install nfs-utils vim /etc/exports /data/k8s/ 172.16.1.0/24(sync,rw,no_root_squa ...

  6. 修饰符-final

    Java是由C/C++泛生的,其也保留了C/C++的部分特性,如关键字.在C/C++中,关键字有着特殊的含义. final修饰符 在编程中,一般会存在一些变量或方法,程序员不让其数据"发生改 ...

  7. MySQL-5.7.29解压版安装教程【全网最新】

    作者:北顾箫 博客园地址:https://www.cnblogs.com/Aarom 1.下载解压 下载地址:https://downloads.mysql.com/archives/communit ...

  8. tensorflow源码解析之common_runtime-device

    目录 核心概念 device device_factory device_mgr device_set 1. 核心概念 在framework部分,我们介绍了DeviceAttributes和Devic ...

  9. Java的jmap命令使用详解

    jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具.除此以外,jmap命令还可以查 ...

  10. 从此 Typora 代码块有了颜色

    起因 平时喜欢用typora记笔记,但是typora默认代码块没有指定语言,没有高亮看着很不舒服,所以用Autohotkey花了半天写了个脚本,按自己的快捷键就可以自动生成代码块并添加语言,这样就方便 ...