是否有任何方法可以在BTreeMap中使用字节数组作为键,如:
BTreeMap<byte[], Integer> myBTreeMap = db.getTreeMap("myBTreeMap");当前,当试图将新对象放入映射时,将引发此异常:
Exception in thread "main" java.lang.ClassCastException: [B cannot be cast to java.lang.Comparable ...怎样才能让这件事奏效呢?我想知道不使用包装类的解决方案。
任何想法都欢迎。
更新
我使用了SJuan76提出的解决方案:
BTreeMap<byte[], Integer> myBTreeMap = db.createTreeMap("myBTreeMap")
.comparator(SignedBytes.lexicographicalComparator())
.makeOrGet();如果需要,可以在番石榴图书馆找到使用过的比较器。
发布于 2014-07-10 16:58:57
MapDB提供byte[]数组比较器: Fun.BYTE_ARRAY_COMPARATOR
下面是如何在代码中使用的示例:
Map<byte[], Object> map = db.createTreeMap("map")
.comparator(Fun.BYTE_ARRAY_COMPARATOR)
.makeOrGet();https://stackoverflow.com/questions/24670628
复制相似问题