Ali*_*aka -3 java dictionary multimap java-8 java-stream
我想使用Java 8流来收集带有集合的地图.
例如,拥有以下数据:
Map<String, Collection<Integer>> data;
Run Code Online (Sandbox Code Playgroud)
我想用相应的键字符串来处理处理每个整数值的元素.例如:
data.keyValueStream((k,v)-> ...)
Run Code Online (Sandbox Code Playgroud)
知道怎么做到这一点?谢谢.
*关于"你为什么需要它?"的问题,这可能是一堆原因,我不确定它是否重要.无论如何,我会和你一起"流动"...我的具体情况是在他们的特定键下批量插入数据库中的所有值.让它保持一个普通的Java 8流问题......
您可以将您的地图映射Map<String, Collection<Integer>>到List<Map.Entry<String, Integer>>:
data.entrySet().stream()
.flatMap(e -> e.getValue().stream().map(v -> new HashMap.SimpleEntry<>(e.getKey(), v)))
.forEach(e -> System.out.printf("key %s val %d%n", e.getKey(), e.getValue()));
Run Code Online (Sandbox Code Playgroud)
要么:
data.forEach((k, v) -> v.forEach(n -> System.out.printf("key %s val %d%n", k, n)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |