【发布时间】:2013-02-13 11:46:02
【问题描述】:
我一直很难想出一种方法来创建一个 HashMap,它将具有相同键的值(到一个列表中)分组。这就是我的意思:
假设我有以下键和值:
Value Key *Sorry I got the columns swapped
1 10
1 11
1 12
2 20
3 30
3 31
我想把这些值放入一个
Hashmap <Integer, List<Integer>>
这样它将值分组到具有相同键的 List Integer 中,如下所示:
(1, {10, 11, 12}),(2, {20}), (3, {30,31})
现在键和值都存储在一个
Hashmap <Integer, Integer>
我不知道如何循环遍历这个 Hashmap 以使用键创建新的 Hashmap:值对列表。有没有人对这个话题有好的方法?
【问题讨论】:
-
您确定这些值存储在
Map中吗? -
由于
HashMap中的密钥是唯一的,我敢打赌您的大部分信息都丢失了。执行一个简单的for (Map.Entry<Integer, Integer> e : yourMap) { out.println(e.getKey() + " " + e.getValue()); }循环来检查当前地图的内容。 -
地图有唯一的键。键1是怎么重复的?
-
Hashmap 不允许一个键有多个值 - 您不能在 HashMap
, period 中发布初始列表。 -
我做了out.print,键和值都按原样打印出来了