求一个合理算法,比较两个数据量较大的集合

现有listA,数据库B,A中的数据如果与B中不同(包含不存在的情况),
则将不同或不存在的数据记录到B中,
现在问题是,listA和数据库B都有大量数据,
求一个合理的比较二者数据的算法

先排序再比较啊。
比较的时候:
如果 A[i] == B[j],继续下一个比较 A[i+1]B[j+1]
如果 A[i]<B[j]、或者B没有可以比较的数,就是不存在;
如果 A[i]>B[j],继续下一个比较 A[i]B[j+1]

如果用Java的话,可以用List对象的 list.contain(obj)方法判断列表是否存在这个元素。你把数据库的东西查出来放到一个List里面再比较啊。

把listA插入到一张空表c中,insert into B (select * from c where c.条件 not in (select 条件 from B))----条件只的是表的某个字段

将B数据库进行hash编码,并建立与之对应的位置关系,从A中取数据,获取hash值,看能否找到对应的位置,找到则表示存在,没找到,则添加进B的hash表