我创建了一个Hashmap,它有一个Key条目的多个条目。现在我想单独检索所有值。我怎么能这样做?
我检查了很多网站,但无法获得如何实现它的线索,示例代码段对我有用。
HashMap<String,String>
key value
04302014 04302014
04302014 abc
04302014 10
04302014 20
04302014 20
05302014 05302014
05302014 def
05302014 10
05302014 20
05302014 20
现在使用key
我想单独检索所有值并存储在变量中。
与密钥04302014
类似,我需要提取一次并存储在变量中,并在第二次迭代中存储密钥05302014
。
答案 0 :(得分:2)
Hashmap每个键只有一个值,所以这是不可能的。你需要一个Multimap(例如在Guava中)或Map到值列表。
答案 1 :(得分:0)
java中的任何map(hashmap,linkedhashmap,hashtable或treemap)只能有一个唯一键。
如果再次添加相同的密钥,则会覆盖之前的密钥。
最好在列表或集合中添加值,并使用单个键将其添加到地图中。
同样如下所示
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> values1 = new ArrayList<String>();
List<String> values2 = new ArrayList<String>();
values1.add("10");
values1.add("20");
values2.add("30");
values2.add("40");
map.put("key1", values1);
map.put("key2", values2);
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
System.out.println(entry.getKey() + " values are ");
System.out.println(entry.getValue());
}
在你的情况下 使用值04302014,abc,10,20,20
创建列表另一个值为def,10,20,20
的列表使用相应的键添加这两个列表 list1的密钥04302014和list2的密钥05302014