我正在尋找一個好的哈希映射實現。具體而言,這對於創建大量地圖非常有用,其中大部分地圖很小。所以記憶是一個問題。它應該是線程安全的(儘管爲了獲得更好的性能,丟掉一些奇怪的東西可能會是一個妥協的妥協),並且快速獲得和放棄。而且我還喜歡用一個正義的邊界秩序的棒子上的月亮。Java:多線程映射:實現如何比較?
我知道的選項是:
HashMap中。糟糕的線程安全。
ConcurrentHashMap。我的第一選擇,但這有一個巨大的內存足跡 - 每個實例約2k。
Collections.sychronizedMap(HashMap)。這對我來說行得通,但我確定必須有更快的選擇。
Trove or Colt - 我認爲這些都不是線程安全的,但也許代碼可以適應線程安全。
其他?有什麼建議什麼時候打什麼? Java可以使用實現的任何非常好的新哈希映射算法?
在此先感謝您的意見!
不要忘記歷史悠久的HashTable。已廢棄,但仍舊在舊版Java代碼中發現。 – Uri 2010-05-20 23:31:28
@Uri:它是用小寫字母t表示的哈希表:)說到遺留的.. – BalusC 2010-05-20 23:49:38
您還可以通過調整concurrencyLevel構造函數參數來管理一些擴展ConcurrentHashMap的佔用空間。 – Affe 2010-05-21 00:00:09