java为什么在创建地图时会出现IllegalArgumentException?
我试图创建一张城市和温度的地图,但它抛出了一个IllegalArgumentException
。以下是我正在做的:
Map<String, Integer> tempMap = Map.of("London", 13, "Paris", 17, "Amsterdam", 13,
"Madrid", 21, "Rome", 19, "London", 13, "Bonn", 14,
"Moscow", 7, "Barcelona", 20, "Berlin", 15);
如果我一个接一个地添加它们,没有问题:
Map<String, Integer> tempMap = new Hashmap<>(); // or LinkedHashMap
tempMap.put("London", 13);
tempMap.put("Madrid", 21);
tempMap.put("Moscow", 7);
// etc.
为什么会这样?内容不是应该是一样的吗
# 1 楼答案
如Map.of()
因为,每个奇数参数都是键,偶数是
Map
的值。您需要确保奇数参数是唯一的另一方面,^{} 将替换同一键的旧值