【问题标题】:Where can I find a good ByteArrayMap implementation? (fast with low gc)我在哪里可以找到一个好的 ByteArrayMap 实现? (快速低gc)
【发布时间】:2012-03-18 05:49:05
【问题描述】:

我正在寻找一个使用字节数组 (byte[]) 作为映射键的映射实现。

你可以像 map.get(myByteArray, 0, len); 那样执行 get 操作

Google 没有提供帮助。 :(

【问题讨论】:

  • 你应该自己实现它,因为map的get方法只是get的一个参数。
  • 没错,它仍然可以是一个 java.util.Map 并提供一个额外的方法,对吧?

标签: java data-structures collections map


【解决方案1】:

您可以使用 ByteBuffer 。它以生成的哈希取决于 ByteBuffer 的内容的方式实现 hashcode 方法。但是,您必须确保用作键的这些缓冲区的内容不应该改变。

直接来自 JavaDoc 因为缓冲区哈希码是依赖于内容的,所以不建议使用缓冲区作为哈希映射或类似数据结构中的键,除非知道它们的内容不会改变。

这是执行此操作的一种方法。其他是实现您自己的类,该类将存储字节数组并实现考虑该字节数组内容的 hashCode() 和 equals() 方法。

【讨论】:

  • 酷。您推荐的任何开源实现? ByteBuffers 作为键对我没有帮助。
  • 我怀疑是否有任何可用的开源实现。无论如何,第二种方法有什么问题,“编写自己的课程”。它简单高效的解决方案,因为您可以管理密钥哈希码的生成。我个人更喜欢这种方法。
  • 在不破坏 Map 合同的情况下,您无法真正使用 byte[] 键编写 Map,按照您想要的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 2019-07-31
  • 2011-07-03
  • 2019-05-01
  • 1970-01-01
相关资源
最近更新 更多