Java 为什么不';我不能为密钥复制获取运行时异常吗?

Java 为什么不';我不能为密钥复制获取运行时异常吗?,java,map,key,Java,Map,Key,在名为map的HashMap中,我复制了键,但是我仍然没有得到任何键复制的运行时异常。为什么会这样 地图数据结构不能有重复的键 import java.util.*; class KeyTest { public static void main(String args[]) { Map<String,String> map = new HashMap<String,String>(); map.put("key-1","val"

在名为
map
HashMap
中,我复制了
,但是我仍然没有得到任何键复制的运行时异常。为什么会这样

地图数据结构不能有重复的键

import java.util.*;

class KeyTest {
    public static void main(String args[]) {
        Map<String,String> map = new HashMap<String,String>();
        map.put("key-1","val");
        map.put("key-1","val");
        map.put("key-1","val");
        map.put("key-1","val");
        map.put("key-1","val");
    }
}
import java.util.*;
类键测试{
公共静态void main(字符串参数[]){
Map Map=newhashmap();
地图放置(“键-1”、“val”);
地图放置(“键-1”、“val”);
地图放置(“键-1”、“val”);
地图放置(“键-1”、“val”);
地图放置(“键-1”、“val”);
}
}

您不会得到任何
异常
。它只是用
键覆盖现有的

这一点在《美国宪法》的文件中也有提及

将指定的值与此映射中的指定键相关联。如果映射以前包含键的映射,则替换旧值

在这种情况下,
键-1
的当前
“val2”
,因为
“val1”
已被替换

根据

将指定值与此映射中的指定键关联(可选操作)。如果映射以前包含键的映射,则旧值将替换为指定值

返回:
与键关联的上一个值,如果键没有映射,则为null。(如果实现支持null值,则null返回还可以指示先前与key关联的映射为null。)


Map.put
不会在重复键上引发异常。您可以测试put的返回值,如果它不是
null
,则键是重复的。如果它是
null
,则取决于具体的映射实现是否允许null<代码>HashMap
可以。

它为什么要抛出异常?你为什么想要它呢?文件上怎么说?
 map.put("key-1","val1");
 map.put("key-1","val2");