具体来说,我想在“for each”循环中使用LinkedHashMap。例如,假设我创建了LinkedHashMap:
LinkedHashMap<String, Integer> someHash = new LinkedHashMap<String, Integer>();
然后我填写了一些东西:
someHash.put("One", new Integer(1));
someHash.put("Two", new Integer(2));
现在我怎么能够通过并获得每一对?我想要的是:
for(<String, Integer> pair : someHash)
{
//Do stuff.
}
但当然这不起作用。有没有一种简单的方法从哈希中检索“对”对象?或者我只需要遍历长度并分别获取值和键?另外,如果是这种情况,我真的应该使用不同的对象吗?
答案 0 :(得分:5)
您可以使用Map.Entry
来模拟C ++中存在的Pair
对象。
for(Map.Entry<String, Integer> entry : someHash.entrySet())
{
System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
}
此处entrySet
是您Map
的所有键/值对。
答案 1 :(得分:0)
像这样使用
LinkedHashMap<String, Integer> someHash = new LinkedHashMap<String, Integer>();
someHash.put("One", new Integer(1));
someHash.put("Two", new Integer(2));
for(String key : someHash.keySet())
{
System.out.println("Key : "+key + " Value : "+someHash.get(key));
}