2012-02-28 32 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

相关问题