首页 > 解决方案 > 从列表映射java8中获取单个键的所有值

问题描述

我的清单如下:

List<Map<String,Object>> mapList=new ArrayList<>();
Map<String,Object> mapObject=new HashMap<String,Object>();
mapObject.put("No",1);
mapObject.put("Name","test");
mapList.add(mapObject);
Map<String,Object> mapObject1=new HashMap<String,Object>();
mapObject1.put("No",2);
mapObject1.put("Name","test");
mapList.add(mapObject1);

and so on...

现在我想将键“No”的所有值作为逗号分隔的字符串获取,如下所示:

String noList="1,2,3"

谁能建议我最好的方法。我知道我们可以通过循环来做到这一点,但除了循环之外,还有其他方法可以做到这一点。

标签: javaarraylistjava-8hashmap

解决方案


内嵌说明!

mapList.stream()                       // stream over the list
    .map(m -> m.get("No"))             // try to get the key "No"
    .filter(Objects::nonNull)          // filter any null values in case it wasn't present
    .map(Object::toString)             // call toString for each object
    .collect(Collectors.joining(",")); // join the values

推荐阅读