Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 将重复值放入hashmap_Java_Memory_Hashmap - Fatal编程技术网

Java 将重复值放入hashmap

Java 将重复值放入hashmap,java,memory,hashmap,Java,Memory,Hashmap,有谁能解释一下,当一个重复的值被放入HashMap时,幕后会发生什么 它是如何影响记忆的?绝对没有什么特别的事情发生。将根据条目的键创建一个新条目并将其插入基础结构的某个位置。HashMap条目的值与条目的位置或检索方式无关 为了澄清,将在每个HashMap条目中复制该值 也许你对这个值感到困惑。首先,区分对象、参考值和变量。我们讨论的值是对对象的引用。阅读以了解其适用性 HashMap不关心值。它没有检查它们。它只关心钥匙。所以当你把相同的值 map.put(k1,v1); map.put(k

有谁能解释一下,当一个重复的值被放入HashMap时,幕后会发生什么


它是如何影响记忆的?

绝对没有什么特别的事情发生。将根据条目的键创建一个新条目并将其插入基础结构的某个位置。HashMap条目的值与条目的位置或检索方式无关

为了澄清,将在每个HashMap条目中复制该值

也许你对这个值感到困惑。首先,区分对象、参考值和变量。我们讨论的值是对对象的引用。阅读以了解其适用性

HashMap不关心值。它没有检查它们。它只关心钥匙。所以当你把相同的值

map.put(k1,v1);
map.put(k2,v1);

HashMap将构造两个Entry对象,这两个对象都将保存并因此复制v1的值,并将这些值存储在其底层结构中。

绝对不会发生任何特殊情况。将根据条目的键创建一个新条目并将其插入基础结构的某个位置。HashMap条目的值与条目的位置或检索方式无关

为了澄清,将在每个HashMap条目中复制该值

也许你对这个值感到困惑。首先,区分对象、参考值和变量。我们讨论的值是对对象的引用。阅读以了解其适用性

HashMap不关心值。它没有检查它们。它只关心钥匙。所以当你把相同的值

map.put(k1,v1);
map.put(k2,v1);

HashMap将构造两个Entry对象,这两个对象都将保存并因此复制v1的值,并将这些值存储在其底层结构中。

那么您的意思是什么?当两个不同的键具有相同的值时。这个值实际上在内存中被复制?或者???@rayman是的,我就是这么说的。值将被复制到每个HashMap条目中,并存储在基础结构中。@rayman:HashMap是哈希键和值之间的映射。值永远不会被散列,只有键是。唯一性仅影响关键点。是。但我在问记忆中会发生什么。这个值会被复制吗?那么你在说什么?当两个不同的键具有相同的值时。这个值实际上在内存中被复制?或者???@rayman是的,我就是这么说的。值将被复制到每个HashMap条目中,并存储在基础结构中。@rayman:HashMap是哈希键和值之间的映射。值永远不会被散列,只有键是。唯一性仅影响关键点。是。但我在问记忆中会发生什么。值会被复制吗?这就像在一个数组中的两个不同索引中存储相同的值一样。如果这有帮助:Map不能有重复的键,那么有重复的值就没有问题了。换句话说,A->1B->1是可以的,但在A->1A->2的情况下,地图将只存储一个A->。。pair,最近放置的一个。这就像在一个数组中的两个不同索引中存储相同的值一样。如果这有帮助:Map不能有重复的键,那么有重复的值就没有问题。换句话说,A->1B->1是可以的,但在A->1A->2的情况下,地图将只存储一个A->。。配对,最近放置的一个。