java 大批量数据比对_java大量数据对比

如题,根据业务需求需要经行数据对比,对比数据是否缺失,存在。可以通过java 中set 集合来进行判断,前提是对比的数据必须要求是唯一的。

逻辑:循环把数据存放入set集合,在循环需要对比的数据,通过set集合的add方法添加数据,若集合大小没有发生变化则表示数据存在,若集合大小发生变化则数据不存在,这个可以根据个人具体业务来进行判断。

注意:使用set集合可能造成数据丢失,所以用set方法必须保证数据的唯一性。

以下为代码:

//需求,以数据一为基础,对比数据二是否数据缺失

List listOne = new ArrayList<>(); //数据一

List listTwo = new ArrayList<>(); //数据二

for(int i = 0 ; i < 100 ; i++){

listOne.add("test"+i); //添加测试数据一

}

for(int i = 0 ; i < 50 ; i++){

listTwo.add("test"+i); //添加测试数据二

}

Set setTwo = new HashSet<>();

setTwo.addAll(listTwo); //可以通过addAll把list集合转换为set集合

List listNot = new ArrayList<>(); //存放缺失的数据

int setTwoSize = setTwo.size(); //数据一大小

for(int i = 0 ; i < listOne.size() ; i++){

setTwo.add(listOne.get(i));

if(setTwo.size() > setTwoSize ){ //判断大小是否改变 ,改变表示数据缺失

listNot.add(listOne.get(i)); //存放缺失了哪些数据

setTwoSize = setTwo.size(); //更新基础集合大小

}

}

//打印缺失数据

for(int i = 0 ; i < listNot.size() ; i++)

{

System.out.println(listNot.get(i));

}

//需求:以数据一为基础,判断数据二中数据是否重复

ListlistOne = new ArrayList<>(); //数据一

ListlistTwo = new ArrayList<>(); //数据二

for(int i = 0 ; i < 100 ; i++){

listOne.add("test"+i); //添加测试数据一

}

for(int i = 0 ; i < 50 ; i++){

listTwo.add("test"+i); //添加测试数据二

}

SetsetOne = new HashSet<>();

setOne.addAll(listOne);  //可以通过addAll把list集合转换为set集合

ListlistNot = new ArrayList<>(); //存放缺失的数据

int setOneSize = setOne.size(); //数据一大小

for(int i = 0 ; i < listTwo.size() ; i++){

setOne.add(listTwo.get(i));

if(setOne.size() == setOneSize ){  //判断大小是否改变 ,改变表示数据缺失

listNot.add(listTwo.get(i)); //存放缺失了哪些数据

setOneSize = setOne.size(); //更新基础集合大小

}

}

//打印缺失数据

for(int i = 0 ; i < listNot.size() ; i++)

{

System.out.println(listNot.get(i));

}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值