2011-11-04 27 views
1

我有这样的:如何获取Android上Java的HashMap循环内容?

Map<Integer, String[]> strs = new HashMap<Integer, String[]>(); 
for (int population = 0 ; population < 20 ; population++) { 

strs.put(0, morning_food); 
strs.put(1, snack1_food); 
strs.put(2, lunch_food); 
strs.put(3, snack2_food); 
strs.put(4, nite_food); 

for (String[] value : strs.values()) { 
    for (String val : value) { 
     Log.d("", val); 

    } 
} 

} 

这将显示的可疑交易报告的20次的内容,我怎么能得到第一件可疑交易报告或者可疑交易报告第十四要不?我曾尝试将它保存到数组,但它总是显示最后一个strs,无论我想要什么索引,任何解决方案? Thx

回答

1

当您使用Map.put时,它将覆盖任何已经与该密钥关联的值。当您拨打Map.put(0, ...) 20次时,您仍然只有一个与密钥0相关的值,最近的值传递给put

如果您需要存储20个与单个密钥相关的不同值,请使用Guava的Multimap

Multimap

-1

使用LinkedHashMap,如果你通过它要循环中设定的顺序

+0

当然,你可以,你只是不能保证我的意思是,只有,没有正确地写任何顺序 –

+0

:P – Optimus