Pat*_*ick 0 java-8 java-stream
我有一张地图清单。该映射包含字符串作为键和对象作为值。最可能的值也为字符串。我想按一个值分组,以便将一组值作为键,将另一组唯一值作为列表。实际上,地图列表是沙发基准选择数据。
例如:
[{"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"]}
Run Code Online (Sandbox Code Playgroud)
试试看 请注意,我的值是Strings
不是Objects
为你的。在您的情况下,您需要明确地将其强制转换为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())));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
121 次 |
最近记录: |