2012-02-28 31 views
-1

我正在尋找一個使用字節數組(byte [])作爲映射關鍵字的映射實現。我在哪裏可以找到一個好的ByteArrayMap實現? (fast with low gc)

您可以執行get.get(myByteArray,0,len)操作。

Google沒有幫助。 :(

+0

你應該自己實現它,因爲map的get方法只是得到一個參數。 – 2012-02-28 18:11:39

+0

沒錯,它仍然可以是java.util.Map並提供額外的方法,對嗎? – chrisapotek 2012-02-28 18:22:48

回答

4

可以使用ByteBuffer。它實現了在生成散列將取決於字節緩衝區的內容方式hashCode方法。但是,你必須確保這些緩衝區作爲關鍵的內容不應改變。

由於緩衝區哈希代碼是內容相關的,因此除非已知它們的內容不會改變,否則使用緩衝區作爲哈希映射或類似數據結構中的鍵是不可取的。

這是執行此操作的一種方法。其他的是實現你自己的類,它將存儲字節數組並實現考慮co的hashCode()和equals()方法這個字節數組的內容。

+0

很酷。你推薦的任何開源實現? ByteBuffers作爲鍵不會幫助我。 – chrisapotek 2012-02-28 18:39:49

+0

我懷疑是否有任何可用的開源實現。無論如何,第二種方法「寫你自己的課程」有什麼問題。它的簡單高效的解決方案就像管理密鑰哈希碼的生成一樣。我個人更喜歡這種方法。 – JProgrammer 2012-02-28 18:45:56

+0

您無法真正用'byte []'鍵寫一個'Map',而不會破壞'Map'合約。 – 2012-02-28 19:17:09

相關問題