相关疑难解决方法(0)

什么Java数据结构最适合双向多值映射

我对Java比较陌生,我对哪种类型的数据结构最适合我的情况有疑问.我有一组基本上是键值对的数据,但是每个值可以对应于多个键,并且每个键可以对应于多个值.一个简化的例子是:

  • 红苹果
  • 青苹果
  • 红草莓
  • 绿葡萄
  • 紫色葡萄

考虑到上面的例子,我需要能够返回我拥有的颜色苹果和/或我拥有的红色水果.实际数据将基于输入文件动态生成,其中每个集合将是100-100,000个值,并且每个值可以对应于另一个集合中的数百个值.

存储和解析这些数据的最有效方法是什么?我希望尽可能使用java本机的解决方案,而不是像外部数据库那样的东西.

这个问题是相关的,但我不确定如何在我的情况下应用解决方案,因为我需要在两个方向上为每个键分配多个值.

java dictionary bidirectional multivalue data-structures

9
推荐指数
1
解决办法
1341
查看次数

具有双向O(1)查找的数据结构.哈希表?

我正在实施一个系统,我有一个名单列表,每个人有1个电话号码.我需要能够取一个名字并查找电话号码,或者拿一个电话号码并查找姓名.

我知道我可以通过两个哈希表来实现这一点 - 一个从名称到电话号码,一个从电话号码到名字.然后我可以在O(1)时间向任意方向查找.然而,这似乎是我存储了太多数据 - 每个名称和每个电话号码都存储了两次.

有没有办法更有效地做到这一点?我应该使用什么数据结构来存储姓名和电话号码?

如果相关,我用Java编码.

非常感谢!

java lookup hashtable data-structures

6
推荐指数
2
解决办法
2490
查看次数

双向映射的数据结构

现在,在你责骂我之前,我知道有一个非常相似的问题:

双向映射的最佳数据结构?

事实上,我正在寻找一种能够完成同样事情的数据结构。具体来说,我有一个字符串应该映射到另一个字符串,并且其他字符串也应该映射到原始字符串。

例如:

".jpg" -> "image/jpeg"
"image/jpeg" -> ".jpg"
Run Code Online (Sandbox Code Playgroud)

链接的问题建议使用某种哈希图或Dictionary<string,string>来完成此任务。

人们将拥有一种自定义数据类型,该类型将保存两个字典,每个字典都是一种映射方式。这将提供 O(1),但我发现它根本不可扩展

考虑到我有一个字典,其中包含从 200 个 MIME 类型到关联文件扩展名的所有映射,我需要创建一个类似的字典,内容相同但相反。这很容易出现拼写错误或丢失键,并且有很多重复的代码。

虽然链接的问题旨在Java中的解决方案,但我正在寻找C#中的解决方案。

是否有.NET 数据结构支持对象之间的这种双向映射?

如果没有,我如何在不复制代码的情况下完成此任务(如两个字典解决方案中所示)?

c# mapping types data-structures

2
推荐指数
1
解决办法
4570
查看次数