我正在尝试使用 hazelcast 多映射和已序列化数据的映射,即键和值都是字节数组。如下所示,它没有按预期工作。
在 javadoc 中,在“gotchas”部分中指出,散列是由 hazelcast 在序列化形式上处理的,不依赖于 hashCode 和 equals 的实现(在字节数组的情况下不会被覆盖)。所以,我不明白为什么显然使用了 Object.hashcode 。
有人可以告诉我如何使用带有字节数组的榛树地图吗?
我是否有义务使用充分覆盖的哈希码/相等方法存储字节数组包装器?
谢谢你的帮助。
问题:
scala> val mm:MultiMap[Array[Byte], Array[Byte]] = hi.getMultiMap("test-baMuMa")
mm: com.hazelcast.core.MultiMap[Array[Byte],Array[Byte]] = MultiMap [test-baMuMa]
scala> mm.put("a".getBytes,"b".getBytes)
res29: Boolean = true
scala> mm.put("a".getBytes,"b".getBytes)
res30: Boolean = true
// => should return false..
scala> mm.remove("a".getBytes,"b".getBytes)
res31: Boolean = false
// => should return true
scala> mm.containsEntry("a".getBytes,"b".getBytes)
res32: Boolean = false
// => should return true (confirmed that removal did not occur)