【问题标题】:What if there is conflict of hashing of keys in ArrayMap or SparseArray?如果 ArrayMap 或 SparseArray 中的键哈希冲突怎么办?
【发布时间】:2020-05-19 23:05:01
【问题描述】:

我已经阅读了很多关于数组映射和稀疏数组的博客,我在每个地方都得到了它

ArrayMap 包含两个小数组而不是 HashMap 中的一个。这 第一个数组 (Hash-Array) 包含已排序的指定哈希键 命令。第二个数组(Key Value Array)存储键和值 根据第一个数组的对象。以下链接供参考 https://android.jlelse.eu/app-optimization-with-arraymap-sparsearray-in-android-c0b7de22541a

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

【问题讨论】:

    标签: java android hashmap sparse-matrix array-map


    【解决方案1】:

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

    这里在提供的文档中有描述:

    当我们获取一个项目时,在 Hash-Array 上进行二进制搜索以找到匹配的哈希索引,然后直接从第二个数组(Key Value Array)返回键值对。如果第二个数组(键值数组)中的键不匹配,则在第二个数组(键值数组)上进行线性遍历以解决冲突。

    【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多