【发布时间】:2014-03-20 08:20:21
【问题描述】:
我有一张地图列表。
List<Map<Integer, String>>
列表中的值是,例如
<1, String1>
<2, String2>
<1, String3>
<2, String4>
作为最终结果,我想要一张地图>,比如
<1, <String1, String3>>
<2, <String2, String4>>
如何在 Java 中实现这一点。
代码:
List<Map<Integer, String>> genericList = new ArrayList<Map<Integer,String>>();
for(TrackActivity activity : activityMajor){
Map<Integer, String> mapIdResponse = activity.getMapIdResponse();
genericList.add(mapIdResponse);
}
现在这个 genericList 是输入,来自这个列表,基于我想要的相同 id
Map<Integer, List<String>> mapIdResponseList
基本上,将基于 id 的 String 响应组合在一起,将具有相同 id 的响应分组到一个列表中,然后创建一个以该 id 作为键和列表作为其值的新映射。
【问题讨论】:
-
Map<Integer,<String,String>> -
所以您在每个映射中只存储一个键值对?在我看来,自定义对象就足够了。
-
我看到你想要
Map<Integer, List<String>>。 -
列表中的地图有共同的键但不同的值。我想将这些公共值分组到一个列表中,然后将该列表放入一个新的 map
> 中,其中公共键作为新映射中的键,而 list 作为它的值。 -
您是否需要将
<String1, String3>放在一个对象中,或者也可以将它们放在List<String>中?