我有一个用例,我想使用不透明的byte []作为MapDb的键。我很快发现了这个Using a byte array as Map key局限性;想知道推荐哪种方法。

我宁愿不创建一堆临时对象和序列化开销,但似乎ByteBuffer.wrap(my_bytes)是Java指向我的地方。

我希望MapDB的核心开发人员之一可以参与其中或ByteBuffer JVM专家。

最佳答案

MapDB作者在这里。

可以使用不带包装的byte []。有一个Hasher处理HCodeMap的hashCode和equals方法:

    Map map = db.createHashMap("map")
            .hasher(Hasher.BYTE_ARRAY)
            .keySerializer(Serializer.BYTE_ARRAY)
            .makeOrGet();

07-25 20:52