【发布时间】:2015-05-12 07:25:17
【问题描述】:
在我的应用程序中,我需要比较部分集合列表以查看它们是否包含相同的元素。我基本上有以下结构:
List 1 Index Set
1 (1,5)
2 (3,7)
3 ()
4 (1,9,15)
我有大约 20 个列表,每个列表中有上千套。列表中的 Set 可以为空,也可以包含多达数百个元素。
我需要为列表的不同间隔创建这些集合的并集。 因此,例如,我想将前一个列表的间隔与以下列表进行比较:
List 2 Index Set
1 (3,6,9)
2 (2)
3 (20)
比较从 2 到 4 的区间列表 1 与从 1 到 2 的区间列表 2 应该得到 (3,9)
目前我使用蛮力方法简单地运行两个列表并比较每个集合。有没有更有效的解决方案?
提前致谢
【问题讨论】:
-
我不太明白列表与集合之间的关系。每个列表是否只包含一个集合,或者一个列表是否包含零个或多个集合?您的示例建议前者,问题文本建议后者。
-
如果两个子列表以完全相同的顺序具有完全相同的集合,则它们相等?
-
@stakx,我澄清了我的问题,感谢您的评论
-
那么,您想返回一个新集合,其中包含可以在列表 1 中的任何集合和列表 2 中的任何集合中找到的所有元素?只需对列表 1 的集合和列表 2 的集合进行并集,然后对这两个集合进行交集。