先从一道面试题开始: 给A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL. 这个问题的本质在于判断一个元素是否在一个集合中.哈希表以O(1)的时间复杂度来查询元素,但付出了空间的代价.在这个大数据问题中,就算哈希表有100%的空间利用率,也至少需要50亿*64Byte的空间,4G肯定是远远不够的. 当然我们可能想到使用位图,每个URL取整数哈希值,置于位图相应的位置上.4G大概有320亿个bit,看上去是可行的.但位图适合对海量的.取值