Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 如果ArrayMap或SparseArray中存在密钥哈希冲突,该怎么办?_Java_Android_Hashmap_Sparse Matrix_Array Map - Fatal编程技术网

Java 如果ArrayMap或SparseArray中存在密钥哈希冲突,该怎么办?

Java 如果ArrayMap或SparseArray中存在密钥哈希冲突,该怎么办?,java,android,hashmap,sparse-matrix,array-map,Java,Android,Hashmap,Sparse Matrix,Array Map,我读过很多关于数组映射和稀疏数组的博客,我在哪里都能看到 ArrayMap包含两个小数组,而不是HashMap中的一个。这个 第一个数组(哈希数组)包含排序中指定的哈希键 秩序。第二个数组(键值数组)存储键和值 根据第一个数组对对象进行排序。以下链接仅供参考 但是,如果数组映射中的两个不同键的哈希代码与哈希映射中的相同,则会发生什么情况?如果具有相同的键哈希(冲突),则会在链表中为下一项的给定存储桶位置追加键值对。与发生哈希冲突时数组映射中的哈希映射不同,对于下一个项目,它只是将值放在第二个数

我读过很多关于数组映射和稀疏数组的博客,我在哪里都能看到

ArrayMap包含两个小数组,而不是HashMap中的一个。这个 第一个数组(哈希数组)包含排序中指定的哈希键 秩序。第二个数组(键值数组)存储键和值 根据第一个数组对对象进行排序。以下链接仅供参考


但是,如果数组映射中的两个不同键的哈希代码与哈希映射中的相同,则会发生什么情况?如果具有相同的键哈希(冲突),则会在链表中为下一项的给定存储桶位置追加键值对。

与发生哈希冲突时数组映射中的哈希映射不同,对于下一个项目,它只是将值放在第二个数组的下一个可用位置,而不是在链表中为给定的bucket位置追加键值对。对于搜索,当哈希冲突发生时,它遍历第二个数组,直到找到所需的值

此处提供的文档中对此进行了描述:

当我们获取一个项目时,对散列数组进行二进制搜索,以找到索引中匹配的散列,然后直接从第二个数组(键值数组)返回键值对。如果第二个数组(键值数组)中的键不匹配,则在第二个数组(键值数组)上执行线性漫游以解决冲突


你好@ruhul谢谢你的回复。请您参考任何可以发现冲突项被引用到第二个数组的下一个索引的文档。文本引用自您提供的文档。是的,它用于搜索,但用于插入不清楚。如果我在这里浏览这个链接,它只是在put方法中覆盖前面的对象。