【发布时间】:2017-04-18 01:17:31
【问题描述】:
假设我有两个项目集合,我想找到它们的交集。
由于这些只是值,而不是键值对,因此通常会使用 List 而不是 Dictionary。
但是,查找两个列表的交集需要一个嵌套循环,因此复杂度为 O(n^2),而使用字典所需的时间为 O(n)。
如果我们要处理大量项目,显然我们会尽量避免 O(n^2),所以答案很简单。我的问题更多是关于项目数量很少且不太可能增长的情况。
使用字典是否被认为是一种不好的做法:
- 键 = 项目类型
- 值 = {虚拟}
即使性能不是问题,也只是为了持续查找能力?我能想到的缺点是:
- 使用比必要更复杂的数据结构。
- 让读者感到困惑,因为该值是虚拟的。
【问题讨论】:
-
考虑
HashSet<T>而不是Dictionary<T> -
我来看看 HashSet 数据结构 -- msdn.microsoft.com/en-us/library/bb359438(v=vs.110).aspx
标签: c# list dictionary