将List 转换成以逗号分割的String字符串
1、使用谷歌的Joiner(代码超级短) import com.google.common.base.Joiner; import java.util.ArrayList; import java.util.List; public class Convert { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(5); list.add(4); list.add(1); System.out.println(Joiner.on(",").join(list)); } }
2、使用String.join方法(不用需要CharSequence类型的子类才行,并且需要同类型) import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Convert { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(5); list.add(4); list.add(1); System.out.println(String.join(",", list.stream().map(String::valueOf).collect(Collectors.toList()))); } }
3、使用collect转换
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Convert { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(5); list.add(4); list.add(1); System.out.println(list.stream().map(String::valueOf).collect(Collectors.joining(","))); } }
拓展: 逗号分隔的String字符串转成List
public static void main(String args[]) { String arrayStr="1,2,5,4,1"; //方式1 List<Integer> integerList = Arrays.stream(arrayStr.split(",")).map(s -> Integer.valueOf(s.trim())).collect(Collectors.toList()); //方式2(判空处理,推荐) List<Integer> integerList1 = StringUtils.isNotBlank(arrayStr)? Stream.of(arrayStr.split(",")).map(Integer::valueOf).collect(Collectors.toList()): Lists.newArrayList(); //方式3 // List<Integer> integerList2 = Arrays.asList((Integer[]) ConvertUtils.convert("1,2".split(","), Integer.class)); System.out.println(integerList1); System.out.println(integerList); }