对番石榴BiMap进行排序

时间:2012-11-05 17:09:26

标签: java guava

我是Guava图书馆的新手,但发现BiMap非常适合我的需求。我的一个问题是我需要对BiMap中的值进行排序。通常情况下,由于它的继承排序,我会使用TreeMap,但是能够反转地图以查看键,就像它们是值一样。

所以我一直在寻找专家给你的建议。我看到的解决方案是:  1.创建一个BiMap比较器并使用我自己的地图排序实用程序。  2.构建我自己的'BiTreeMap'数据结构。

我有没有考虑过的解决方案?有没有'番石榴方式'来做到这一点我错过了?谢谢!

1 个答案:

答案 0 :(得分:21)

我们目前没有排序BiMap类型,因为它的工作方式有点模糊:条目是否按键排序?按价值观?前向条目是否按键排序,反向条目按值排序?

目前,唯一真正可用的替代方案是ImmutableBiMap,它保留了您输入条目的顺序 - 因此ImmutableBiMap.copyOf(Maps.newTreeMap(map))将为您提供按键排序的BiMap。 / p>

(但是,如果您提交了一份功能请求,并提供了有关您的用例的详细信息,我们可能会更认真考虑提供直接排序的BiMap。)