Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在地图中添加相同的关键点两次_Java_Collections_Hashmap - Fatal编程技术网

Java 在地图中添加相同的关键点两次

Java 在地图中添加相同的关键点两次,java,collections,hashmap,Java,Collections,Hashmap,我对Maps进行了研究,发现如果故意添加两次相同的键,那么贴图的大小将保持不变。这背后的技术原因是什么 Map map=new HashMap();//HashMap key random order. map.put("Amit","Java"); map.put("Amit","Java"); 用于检索的代码 System.out.println("There are "+map.size()+" elements in the map.");

我对
Map
s进行了研究,发现如果故意添加两次相同的键,那么贴图的大小将保持不变。这背后的技术原因是什么

 Map map=new HashMap();//HashMap key random order.
         map.put("Amit","Java");
         map.put("Amit","Java");
用于检索的代码

System.out.println("There are "+map.size()+" elements in the map.");
         System.out.println("Content of Map are...");
         Set s=map.entrySet();
         Iterator itr=s.iterator();
         while(itr.hasNext())
         {
             Map.Entry m=(Map.Entry)itr.next();
             System.out.println(m.getKey()+"\t"+m.getValue()+"\t"+ m.hashCode());
          }
我得到的结果是:

There are 1 elements in the map.
Content of Map are...
Amit    Java    3943477
因为密钥必须是唯一的。因此,如果将新值与现有键关联,它将覆盖现有项的值,而不是创建新项:

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射到一个值

您还可以检查(我的):

将指定值与此映射中的指定键关联(可选操作)如果映射之前包含键的映射,则旧值将替换为指定值。(当且仅当m.containsKey(k)返回true时,称映射m包含键k的映射。)


如果新键与任何现有键相同,则映射中的值将被覆盖。

标准Java映射每个键只能有一个值。请注意,该值可以是一个集合,因此可以有效地为每个键存储多个值


如果希望在地图中有多个相同的关键点,则存在多种解决方案。例如,看番石榴。

这就是地图的全部意义。@assylias..谢谢,这条规则适用于所有形式的地图,无论是树地图等。。!!如果此规则不适用,则它不是有效的
Map
实现。所以,是的。@user1579492实现map的每个类都应该遵守接口中定义的约定。JDK中的所有map实现都符合map的契约。由于它在map的契约中,所以它必须应用于实现map的所有内容,否则它就会违反契约。@user1579492 javadoc处于联机状态。这是我文章的第一个链接。javadoc还在最顶端列出了所有实现类。。