我有一个关于在循环内向HashMap
添加元素的强度问题。我确保在迭代之前声明map,每次都忽略它的重新创建,但是我遇到了同样的问题 - 在map中只保留了我循环迭代中的最后一个元素。代码是
//declare map
Map<String, String> map = new HashMap<String, String>();
//my loop iteration
String[] array = {"element1", "element2", "element3"};
for (String str: array) {
map.put("uniqueKey", str);
}
因此,为简单起见map.toString()
,我只获得{uniqueKey=element3}
我只是不明白为什么会这样,任何解释都会受到赞赏。
答案 0 :(得分:2)
嗯,你试图忽略Map
关于唯一键的一般概念。当你在循环中重复它时,让你的"uniqueKey"
“真正”独一无二:)
我会举个例子来理解:
Map<String, String> map = new HashMap<>();
map.put("1", str1);
map.put("2", str2);
map.put("3", str3);
map.put("1", str4); // value str1 is overwritten by str4
将Map
视为List
s,但使用除原始int
以外的索引,而无需将范围0
... {{ 1}}