List<Map>的集合,想获取map内属性a,然后组成新的List<String>
想使用stream流进行操作,但是stream流好像只能操作泛型为实体对象的集合,stream流可以操作这个List<Map>的集合,获取map内属性a的list集合吗???? 求答疑
List<Map<String,String>> list = new ArrayList<>();
List<String> result = list.stream().map(m -> m.get("a")).collect(Collectors.toList());
@org.junit.Test
public void test4(){
List<Map>list=new ArrayList<>();
for(int i=0;i<3;i++){
Map<String,String>map=new HashMap<>();
map.put("a","a"+i);
map.put("b","b"+i);
list.add(map);
}
List<String>list1=list.stream().map(t->t.get("a").toString()).collect(Collectors.toList());
System.out.println(list1.toString());
}
用stream的map。
遍历不就好了?
public static void main(String[] args) {
List<Map<String, Object>> maps = new ArrayList<>();
List<String> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("a", Arrays.asList("1,2,3,4,5,6"));
maps.add(map);
if (!CollectionUtils.isEmpty(maps)) {
maps.forEach(x -> {
if (x.containsKey("a")) {
list.addAll((List<String>) x.get("a"));
System.out.println((List<String>) x.get("a"));
}
});
}
System.out.println(list);
}