用流来进行
String str = "1,2,3";
List<String> list = Stream.of(str.split(",")).collect(Collectors.toList()); ;
大家可能常用Arrays
工具类的asList(T... a)
方法,但是这种方法生成的list不能进行删除和添加操作,会报错。
List<String> list2 = Arrays.asList(str.split(","));
list2.add("1");
//报错信息:
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)//这里点进去就可以看到调用的AbstractList的add
at java.util.AbstractList.add(AbstractList.java:108)
为什么会报错,因为该方法生成的List 是ArrayList的内部类,而内部类没有重新AbstractList 的add方法,而AbstractList 的add方法就是直接抛出异常。
咳咳,这是个知识点记住哦。当然你非要用工具类来创建,你可以重新new一个ArrayList然后构建函数传进去。我更推荐用流的方式来进行创建,简单不易出错。
没啥好说,直接流转。
list.stream().collect(Collectors.joining(","))
@Test
public void listmapTostring(){
List<Map<String, Object>> list = new ArrayList<>();
for (int i=0; i<10; i++) {
Map<String, Object> map = new HashMap<>();
map.put("index", i);
list.add(map);
}
String mergedString = list.stream().map(item ->"" +item.get("index")).collect(Collectors.joining(", "));
System.out.println(mergedString);
}
结果:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
同理你也可以转list中的元素实体对象的。只不过map方法改一下。
总结:
注意理解 stream()
、map()
、collect()
方法
多总结,打造自己的知识体系,不用加晚班。
本文地址:https://blog.csdn.net/hello__word__/article/details/107056586
如对本文有疑问, 点击进行留言回复!!
[杭电多校2020]第一场 1004 Distinct Sub-palindromes
Swift -- 将本地生成的UIImage进行持久化保存(存到文件中fileManager.createFile)
网友评论