【发布时间】:2014-02-01 16:10:04
【问题描述】:
我有两个给定的integer 列表:
alist : TList<Integer>; // eg. 1,2,3,4,5,6,7,8,9
blist : TList<Integer>; // e.g 1,2,3,4,5
Resultlist : TList<Integer>;
IgnoreList : TList<Integer>; // e,g, 1,2,3
在两个列表中找到共同元素的有效方法是什么,排除忽略列表中的元素。由于我必须对许多项目运行此过程,因此我需要一种有效且快速的实施方式来解决此问题。
Resultlist should be 4,5
【问题讨论】:
-
在您的示例中,列表已排序。在现实生活中,你的列表会一直排序吗?如果是这样,实现就容易多了。
-
您可以将您的列表转换为 HashSet 并找到一个交集
-
列表没有排序,Hashset是什么?
-
你有可能值的下限和上限吗?
-
如果列表很短,那么直线比较所有与所有是最快的。