如何用java 8 stream操作List<Map<String,Object>>

课咖app 发布于 07/15 19:16
阅读 484
收藏 0

List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
Map<String,Object> map1=new HashMap<String,Object>();
map1.put("aaa",'111');
map1.put("bbb",'222');
list.add(map1);

Map<String,Object> map2=new HashMap<String,Object>();
map2.put("aaa",'333');
map2.put("bbb",'444');
list.add(map2);

如何用java 8 stream操作上面的数据,筛选出比如
key="aaa"的值,用逗号连接起来.
最后结果得到"111,333"

key="bbb"的值,用逗号连接起来.
最后结果得到"222,444"

加载中
1
Simmy
Simmy

也是醉了,现在的程序猿这点基础都没有吗?

        final String filterKey = "aaa";
        final  String values = list.stream()
                .map(item -> item.get(filterKey))
                .filter(Objects::nonNull)
                .map(item -> item.toString())
                .collect(Collectors.joining(","));

        System.out.println(values);

 

基于你这个用例,还是用MultiValueMap吧

        final LinkedMultiValueMap<String,String> multiValueMap = new LinkedMultiValueMap<String, String>();

        multiValueMap.add("aaa","111");
        multiValueMap.add("bbb", "222");
        multiValueMap.add("aaa", "333");
        multiValueMap.add("bbb", "444");

        System.out.println(String.join(",",multiValueMap.get("aaa")));

 

Simmy
Simmy
回复 @夏昀 : 请问你是哪个,还看不看得起你。如果自己菜得没脸别上这来找脸。 感叹下楼主的问题是很基础的问题,翻开书/看看JDK文档也就是半小时能思考整明白的东西。何来的说学得不好、看不起菜鸟。
夏昀
我们就算是学得不好,也不带你怎么説 ,就算你很牛逼很历害,你就看不起菜鸟,你不是从菜鸟走过来是的
课咖app
课咖app
大神:thumbsup::thumbsup::thumbsup:
0
开源中国网警中心
开源中国网警中心

如果我的想法是对的,用list.foreach应该可以吧

返回顶部
顶部