首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用字节数组作为MapDB实现BTreeMap的关键

如何使用字节数组作为MapDB实现BTreeMap的关键
EN

Stack Overflow用户
提问于 2014-07-10 07:20:04
回答 3查看 675关注 0票数 1

是否有任何方法可以在BTreeMap中使用字节数组作为键,如:

代码语言:javascript
复制
BTreeMap<byte[], Integer> myBTreeMap = db.getTreeMap("myBTreeMap");

当前,当试图将新对象放入映射时,将引发此异常:

代码语言:javascript
复制
Exception in thread "main" java.lang.ClassCastException: [B cannot be cast to java.lang.Comparable ...

怎样才能让这件事奏效呢?我想知道不使用包装类的解决方案。

任何想法都欢迎。

更新

我使用了SJuan76提出的解决方案:

代码语言:javascript
复制
    BTreeMap<byte[], Integer> myBTreeMap = db.createTreeMap("myBTreeMap")
            .comparator(SignedBytes.lexicographicalComparator())
            .makeOrGet();

如果需要,可以在番石榴图书馆找到使用过的比较器。

EN

Stack Overflow用户

发布于 2014-07-10 16:58:57

MapDB提供byte[]数组比较器: Fun.BYTE_ARRAY_COMPARATOR

下面是如何在代码中使用的示例:

代码语言:javascript
复制
   Map<byte[], Object> map = db.createTreeMap("map")
               .comparator(Fun.BYTE_ARRAY_COMPARATOR)
               .makeOrGet();
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24670628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档