Java 8转换Map< Integer,List< String>> to Map< String,List< I

编程入门 行业动态 更新时间:2024-10-28 08:30:55
本文介绍了Java 8转换Map< Integer,List< String>> to Map< String,List< Integer>>同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个地图是一个值列表的地图,但我需要反转它,以便

I have a Map is a map to a list of values but I need to inverse it so that

Map<Integer, List<String>>

变为

Map<String, List<Integer>>

例如我有

1 -> { A, B, C } 2 -> { B } 3 -> { A, C }

我希望看到

A -> { 1, 3 } B -> { 1, 2 } C -> { 1, 3 }

Java 8中是否有更简单的方法来执行此操作而不是迭代如果映射条目不存在则创建一个集合条目,并添加到列表等?我一直认为这很明显,但我无法解决。

Is there any easier way in Java 8 to do this than having to iterate through the map entries and create a set entry if it does not exist, and add to the list etc? I keep thinking it is really obvious but I cannot work it out.

提前致谢

推荐答案

未经测试,但您可以这样做:

Untested, but you could do something like this:

mapIntToStrings.entrySet().stream() .flatMap(entryIntToStrings -> entryIntToStrings.getValue().stream() .map(str -> new AbstractMap.SimpleEntry<>(entryIntToStrings.getKey(), str))) .collect(groupingBy(Map.Entry::getValue, mapping(Map.Entry::getKey, toList())))

更多推荐

Java 8转换Map&lt; Integer,List&lt; String&gt;&gt; to Map&lt; S

本文发布于:2023-09-09 17:55:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1466859.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:amp   lt   Java   Map   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!