2014-01-14 41 views
0

php/js中的對象和聯合數組是散列圖,當碰撞發生時,php/js對象是可靠的嗎?如何測試它?

所以我擔心如果我在數組中存儲很多元素的可靠性。

我擔心數據在碰撞發生時會被覆蓋。

在php/js中使用了什麼hash,以及如何找到兩個碰撞字符串來測試它?

+0

提取如果你可以很容易地找到它發生碰撞的字符串,然後哈希函數明顯偏弱:P – thefourtheye

+0

總是會有一個哈希表的碰撞 - 當您啓動的建立桶並通過桶進行某種搜索。如果兩個鍵發生碰撞,您不必擔心「丟失」數據。底層系統將確保這兩個鍵的值仍將被分配到獨立存儲 –

+0

如果兩個鍵具有相同的散列,系統如何知道值應分配給單獨的存儲或同一存儲?以及如何定位正確的值,如果給定的鍵散列兩個值? –

回答

1

[...]數組的內部哈希機制將您的字符串 轉換爲整數,然後就可以使用,以解決在陣列內鬥。 PHP的數組不是真實/真實數組 - 它們是內部鏈接的某種類型的HashMap。考慮到多個字符串可以將 分配到相同的散列,每個存儲桶本身就是一個列表。如果同一個存儲桶中有多個 元素,則必須對每個密鑰進行評估。

PHP associative array's keys (indexes) limitations?rodneyrehm答案)

相關問題