最佳的数据结构用于双向映射

10
我想要一个数据结构,可以将键映射为对象,也可以将对象映射为键(不同于只能单向映射的 HashMaps)。一种思路是在自身中存储 HashMap 以进行反向查找,但这样做效率较低。那么,双向映射的最佳实现方式是什么呢?

9
请查看双向映射(BiMap) - Sotirios Delimanolis
https://dev59.com/XGrXa4cB1Zd3GeqPBaz5 - Anwar
1个回答

10

最简单的想法是:包含2个映射的包装类,第二个映射中键/值交换。您将保持O(1)复杂度,并且只会使用稍微更多的内存,因为您(可能)会在那里保留对象的引用


我在问题本身中提到了这个想法,但我猜可能有更好的实现方式来提高效率。 - dev
3
为什么您认为这样会效率低下?您将保持“O(1)”的复杂度。 - IProblemFactory
@TanaySoni 从简单的开始,只有在确实需要时才寻找低效率。你有任何指标可以将这种方法作为系统潜在瓶颈吗? - Colin D
1
我正在尝试在图像处理应用程序中使用像素映射。考虑到大数据集(典型图像有数百万像素),我正在寻找一种相当高效的方法。 - dev
@ProblemFactory:位图的实现方式是否相同? - dev
我相信你指的是BiMap,那么“很可能”可以,你可以下载源代码并自行检查。 - IProblemFactory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接