> 到地图地图的价值列表> 使用蒸汽 API Java 8,java-8,java-stream"/>

首页 > 解决方案 > 如何转换地图列表列表> 到地图地图的价值列表> 使用蒸汽 API Java 8

问题描述

我有一张地图清单。该地图包含字符串作为键和对象作为值。最有可能的值也是字符串。我想按一个值分组,以便获得一组值作为键,另一组唯一值作为列表。实际上,地图列表是沙发库选择数据。

例如:

 [{"id":"1", "status":"pending"},{"id":"2", "status":"download"},{"id":"3", "status":"pending"},{"id":"4", "status":"pending"}, {"id":"5", "status":"ready"},{"id":"6", "status":"download"}] => {"pending":["1","3","4"], "download":["2","6"], "ready":["5"]}

标签: java-8java-stream

解决方案


试试这个。请注意,我的价值观StringsObjects您不同。在您的情况下,您需要明确地将其转换为String喜欢,

s -> (String) s.get("status")
s -> (String) s.get("id")


Map<String, List<String>> idsByStatus = listOfMap.stream().collect(
        Collectors.groupingBy(s -> s.get("status"), Collectors.mapping(s -> s.get("id"), Collectors.toList())));

推荐阅读