簡體   English   中英

如果 ArrayMap 或 SparseArray 中鍵的散列沖突怎么辦?

[英]What if there is conflict of hashing of keys in ArrayMap or SparseArray?

我已經閱讀了許多關於數組映射和稀疏數組的博客,其中每個地方我都得到了

ArrayMap 包含兩個小數組而不是 HashMap 中的一個。 第一個數組 (Hash-Array) 按排序順序包含指定的哈希鍵。 第二個數組(Key Value Array)根據第一個數組存儲對象的鍵和值。 以下鏈接供參考https://android.jlelse.eu/app-optimization-with-arraymap-sparsearray-in-android-c0b7de22541a

但是,如果我在數組映射中的兩個不同鍵的哈希碼與哈希映射中的相同,那么如果我在哈希映射中具有相同的哈希碼,會發生什么情況,如果具有相同的鍵哈希(沖突),它會在給定的鏈表中附加鍵值對下一個項目的桶位置。

與 ArrayMap 中發生哈希沖突時的 hashMap 不同,它不是將給定桶位置的鍵值對附加到鏈表中,而是將下一項的值放在第二個數組中的下一個可用位置。 對於搜索,當發生哈希沖突時,它會遍歷第二個數組,直到找到所需的值

在提供的文檔中對其進行了描述:

當我們獲取一個項目時,會在 Hash-Array 上進行二分搜索以找到匹配的哈希索引,然后直接從第二個數組(鍵值數組)中返回鍵值對。 如果第二個數組(鍵值數組)中的鍵不匹配,則在第二個數組(鍵值數組)上進行線性遍歷以解決沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM