[英]What data structure should I use for a double binding between two objects?
我有两个具有两种不同类型对象的列表,分别是列表list1和List list2。 在位置的对象i
List1中在位置与该相关i
在list2中。
我必须回答这种类型的查询,给定对象A返回对象B在list2中的相同位置,反之亦然,给定对象B返回对象A在list1中的相同位置。
简单的解决方案是对每个查询进行O(n)搜索。 我正在寻找可能的解决方案来改进它。 到目前为止,我有两个字典,一个Dictionary<A, B> dicAtoB and Dictionary<B, A> dicBtoA
,我在其中分别插入了列表中的所有元素。 我正在寻求其他解决方案,因为在我的元素中插入了两次,并且我不得不使用这两个额外的字典,并且...我不知道还有什么,但我只是不太喜欢我。
两个建议:
A
实例,而是通过调用bList[i]
提供索引i
(如果可能)并在O(1)
获得B
实例。 A
和B
以包括对另一类相关对象的引用。 这会使您的插入和删除操作更加复杂,但是搜索操作将为O(1)
,这是合理的折衷方案,以防您执行大量搜索操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.