我有两个系列。一个具有id和content的项目列表,让我们调用此列表ItemList。我有另一个集合,告诉我用户是否选择了一个项目。调用此列表收集它将具有用户ID和项ID。用户和项目的数量都非常大。从ItemList查询不在列表Collected中的用户的项目的最佳方法是什么。
以下是我的一些想法:
如果上述想法无法扩展,你能否为我提供算法。这些不能是内存中的解决方案,因为我肯定需要保留数据。
答案 0 :(得分:1)
您也可以使用位集。
Load into some bitset ItemList (ItemID is index in the bitset).
Load into another bitset IDs_for_user for this user.
Perform opearation: Resut = ItemList ANDNOT IDs_for_user.
您可以在这里获得免费的bitset库: http://bmagic.sourceforge.net/