有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    Map.of()

    They reject duplicate keys at creation time. Duplicate keys passed to a static factory method result in IllegalArgumentException.

    因为,每个奇数参数都是键,偶数是Map的值。您需要确保奇数参数是唯一的

    另一方面,^{}将替换同一键的旧值