集合流之“将List<Integer>转为String并用逗号分割”

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。

 

posted @ 2021-08-21 09:28  骚哥  阅读(4080)  评论(0编辑  收藏  举报