集合流之“将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。
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com