18

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

因此,我正在向各位专家寻求有关这方面的建议。我看到的解决方案是: 1. 创建一个 BiMap 比较器并使用我自己的地图排序实用程序。2.构建我自己的'BiTreeMap'数据结构。

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

4

1 回答 1

23

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

目前,唯一真正可用的替代方法是ImmutableBiMap,它保留了您放入条目的顺序——因此ImmutableBiMap.copyOf(Maps.newTreeMap(map))会给您一个BiMap按键排序。

BiMap(不过,如果您提交的功能请求包含更多关于您的用例的详细信息,我们可能会更认真地考虑提供直接排序。)

于 2012-11-05T17:20:26.090 回答