- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Guava 库的新手,但发现 BiMap 非常适合我的需要。我的一个问题是我需要对我的 BiMap 中的值进行排序。通常,我会使用 TreeMap,因为它具有继承排序功能,但必须能够反转映射以将键视为值。
因此,我一直在向各位专家征求有关解决此问题的建议。我看到的解决方案是: 1. 创建一个 BiMap 比较器并使用我自己的 map 排序实用程序。 2. 构建我自己的“BiTreeMap”数据结构。
有没有我没有考虑过的解决方案?有没有我错过的“ Guava 方式”?谢谢!
最佳答案
我们目前没有排序的 BiMap
类型,因为它的工作方式有点模棱两可:条目会按键排序吗?靠值(value)观?正向条目是否按键排序,反向条目按值排序?
目前,唯一真正可用的替代方法是 ImmutableBiMap
,它保留了您放入条目的顺序——所以 ImmutableBiMap.copyOf(Maps.newTreeMap(map))
会给你一个按键排序的 BiMap
。
(不过,如果您提交了关于您的用例的更多详细信息的功能请求,我们可能会更认真地考虑提供直接排序的 BiMap
。)
关于java - 对 Guava BiMap 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13236927/
我有以下代码: #include #include #include using namespace boost::bimaps; using namespace boost; struct E
我有以下内容: struct foo_and_number_helper { std::string foo; uint64_t number; }; struct foo_and_numbe
我有一个这样的双图: using MyBimap = boost::bimaps::bimap, boost::bimaps::unordered_set_of>; 我想从静态初始化列表构造它
我正在审查 Google Guava API 的功能,并遇到了一种我在“现实世界编程”经验中从未见过的数据结构,即 BiMap。这种构造的唯一好处是能够快速检索给定值的 key 吗?是否存在使用 Bi
我有一个像这样的无序 bimap: using SymPressMap = boost::bimap, boost::bimaps::unordered_se
如果不使用 BiMap 的 .inverse() 函数,您将如何进行反向映射? 我得到了: public static Map> reverseMapping(Map mapping) 我尝试过类似的
根据这个question中使用boost::bimap的建议, 我有一个关于如何解决 bimap 中重复键的问题。 如果我有: , ,是否可以在bimap中插入两次? 我看到了描述 Collecti
我使用了很多形式的容器 boost::bimap, boost::bimaps::set_of > 我在一个头文件中定义它们,这个头文件包含在很多 cpp 文件中(这是在我尽可能限制头文件的公开之后)
我正在尝试获取通过其键访问的值。到目前为止,我有一个我尝试过的最小示例,并且仅适用于左侧访问。 #include #include #include #include #include #i
我想访问 bimap 中重复元素的所有键。我在下面有一些示例代码 #include #include #include #include #include #include namespa
好的,所以我声明了一个 boost::bimap: boost::bimap object_list; 其中 object 和 position 分别是一个类和一个结构。 在 bimap 中存储的当前
Java 编程 迭代 map 的问题 Iterator iterator = plugin.inreview.keySet().iterator(); while (iterator.hasNext(
设 T_1 和 T_2 是两种类型,f: Dom(T_1) -> Dom(T_2) 是一个非双射的单射函数;为了便于讨论,假设我将 f 表示为不同的对,而不是用于计算它的代码。现在,我需要能够相对快速
我正在寻找双向无序 map 。目前,我只有这个。问题是,我不能使用 []。我认为 boost 默认为列表类型。但我想要一个 HashMap 。这怎么可能? #include #include bo
我正在尝试为 C++ 中的枚举创建一个简单的双向查找工具。我的单向查找工作正常... enum MyEnum { One, Two, Three }; const boost:
我正在模板化类中嵌入 boost::bimap,经过多次试验和错误,我发现了一些可以编译的东西和一些不能编译的东西。我正在使用 g++ (GCC) 4.9.2 20150212 (Red Hat 4.
我对BiMap仍然很困惑在 Google collections/Guava 。据称,这两个 bimap 有相同的数据支持;对其中一个的任何更改都会出现在另一个中。 浏览了一下源码,发现Forward
我刚刚读过这篇文章 http://www.ctl.ua.edu/math103/mapcolor/mapcolor.htm 我不明白,如何将此 map (在 bimap 中)转换为图形结构。 进入 如
我想序列化 BiMap与 xStream .由于我不喜欢 xStream 为 BiMap 自动生成的代码,我认为将 BiMap 转换为 HashMap 并仅序列化 HashMap 可能是个好主意,反序
我正在尝试使用 boost::bimap 来满足我的一项要求。下面是示例代码 typedef bimap, multiset_of, set_of_relation<>
我是一名优秀的程序员,十分优秀!