我刚接触Guava库,但我发现BiMap非常适合我的需求。我的一个问题是,我需要对BiMap中的值进行排序。通常,由于继承排序,我会使用TreeMap,但是必须能够反转映射来查看键,就像它们是值一样。
所以我正在向你们的专家寻求关于这方面的建议。我看到的解决方案是: 1.创建一个BiMap比较器,并使用我自己的地图排序工具。2.构建自己的'BiTreeMap‘数据结构。
有没有我没有考虑过的解决方案?有没有一种“芭乐方式”可以做到这一点,我错过了?谢谢!
发布于 2012-11-06 01:20:26
我们目前没有一个排序的BiMap类型,因为它的工作方式有点模棱两可:条目是按键排序的吗?通过价值观吗?前向条目是否按键排序,反向条目是否按值排序?
目前,唯一真正可用的替代方案是ImmutableBiMap,它保留了您放入条目的顺序--因此ImmutableBiMap.copyOf(Maps.newTreeMap(map))将为您提供一个按键排序的BiMap。
(不过,如果您提交了一个包含更多有关用例的详细信息的功能请求,我们可能会更认真地考虑提供一个直接排序的BiMap。)
https://stackoverflow.com/questions/13236927
复制相似问题