我有这个 :

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);

    }
}

}


这将显示strs的内容20次,如何获得第一个strs或第十四个strs或其他内容?我试过将其保存到数组中,但是无论我想要什么索引,它始终显示最后一个str,有什么解决方案?谢谢

最佳答案

当您使用Map.put时,它将覆盖已与该键关联的任何值。当您呼叫Map.put(0, ...) 20次时,您仍然只有一个与键0关联的值,这是传递给put的最新值。

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

Multimap

10-08 16:29