java 取出集合前两个数据库_【Java】获取两个List中不同的数据(效率非常不错)-Go语言中文社区...
项目背景
刚好项目要快速对比两张表的不同数据,但是提供的是id的列表(list),另外在数据库中,所以这里想出了一个办法,先从数据库中找出有的数据in(sql)出来先,然后用代码匹对,因为这里要查出提供的id列表哪些是多余的数据,所以代码返回多余id的list
结果:
1、list1中有97277条数据,list2中有37894条数据,两个list进行对比找出不同的数据共60000条左右,用时:0.051秒
2、list1中有97277条数据,list2中有97067条数据,两个list进行对比找出不同的数据共288条,用时:0.06秒
下面的方法是对比两个list相互不同的数据
也可以删除红色字的代码做成list1比list2多出多少数据
public static List getDiffrent(List list1, List list2){
Map map = new HashMap(list1.size()+list2.size());
List diff = new ArrayList();
List maxList = list1;
List minList = list2;
if(list2.size()>list1.size()){
maxList = list2;
minList = list1;
}
for (String string : maxList){
map.put(string, 1);
}
for (String string : minList){
Integer cc = map.get(string);
if(cc!=null){
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for(Map.Entry entry:map.entrySet()){
if(entry.getValue()==1)
{
diff.add(entry.getKey());
}
}
return diff;
}
有人回复说不行,我再补充main方法,(受不了不给测试方法就说不行的人)
public static void main(String[] args) {
List list1 =new ArrayList();
for(int i=1;i<10;i++) {
list1.add(i+"");
}
List list2 =new ArrayList();
for(int i=5;i<10;i++) {
list2.add(i+"");
}
List list3 =getDiffrent(list1,list2);
List list4 =getDiffrent(list2,list1);
System.out.println(list1);
System.out.println(list2);
System.out.println("不同的值:"+list3);
System.out.println("不同的值:"+list4);
}
结果如图
java 取出集合前两个数据库_【Java】获取两个List中不同的数据(效率非常不错)-Go语言中文社区...相关推荐
- kubernetes中mysql乱码_在kubernetes中部署tomcat与mysql集群-Go语言中文社区
在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础: 1. 已安装.配置kubernetes 2. 集群中有tomcat与mysql容器镜像 3. 有docker基础 具 ...
- java awt run_Java中awt基本组件及其使用方法-Go语言中文社区
1,按钮 此类创建一个标签按钮.当按下该按钮时,应用程序能执行某项动作.它有两种构造方法: public Button() 构造一个标签字符串为空的按钮. public Button(String l ...
- centos7不能安装mysql数据库_Centos7 上安装mysql遇上的问题:mysql无法正常启动-Go语言中文社区...
第一次在Centos上安装mysql遇到的一些问题. 第一步就遇到问题,安装mysql-server报错没有可用包. [解决方法] 先要安装mysql # wget http://repo.mysql ...
- java負數能取余_Java别说取余(%)运算简单,你真的会吗?-Go语言中文社区
一,直击现场 下面我来抛出几道题: 说明m是商,n是余数: (1)正数%正数 3%2=m--.n 2%3=m--.n (2)正数%负数或者负数%正数 -3%2=m--.n 3%-2=m--.n -2% ...
- java对象底层原存储结构图解_图解图库JanusGraph系列-一文知晓“图数据“底层存储结构...
大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 转载文章请保留以下声明: 一:存储模式 留言或私信我,邀请你加入"图数据库交流"微信群! 1. ...
- java基础集合操作工具类Collections简述(java集合四)
对集合中的元素进行排序 Collections中的sort方法使用 public class ListDemo {public static void main(String[] args) {Lis ...
- Java太密来福_这篇文章就是要让你入门java多线程【多线程入门】-Go语言中文社区...
就在前几天,有位读者朋友私信宜春,说期待出一篇多线程的文章,我当时内心是小鹿乱撞啊-于是这几天茶不思饭不想,好几天深夜皆是辗转反侧,两目深凝,以至于这几天走起路来格外飘飘然,左摇右晃的,魔鬼般的步伐, ...
- java 获取两个时间差_java如何获取两个日期的时间差
本文实例为大家分享了java如何获取两个日期的时间差,供大家参考,具体内容如下 rainBeginTime是从本地数据库获取的时间,格式为"yyyy-MM-ddTHH:mm:ss" ...
- java可以写a手机app吗_JAVA程序员自学编程 a l’App Store
*****Java程序员的给力助手***** -----本应用是一款java程序员自学参考手册,内容涵盖了所有java自学入门教程.高级教程以及数十道java经典面试题及代码答案,十分适合java开发 ...
最新文章
- 当初我要是这么学习Nginx就好了!(多图详解)
- 第十三届全国大学生智能汽车竞赛获奖名单
- 表达式解析执行器 IKExpression
- 计算机视觉研究入门全指南----新手博士需要准备的资料
- c语言汉字属于什么类型_狠准!你的名字属于什么类型 就是什么性格
- JDBC实现图书管理小案例
- 计算机专用英语词汇pdf,计算机专用英语词汇1500词.pdf
- 商业互吹?扎克伯格:后悔没早点学微信
- BitTorrent协议与MagNet协议原理
- 进程管理:fork与exec函数及fork子进程和父进程
- VMware安装linux镜像
- html简单网页代码
- 免费实时汇率查询接口
- 什么是数据库?什么是数据库管理系统? 说明两者的区别和联系。
- BIMC品牌整合营销:电子商务外包是中小企业未来发展方向
- 未分配虚拟网络-清理注册表
- http协议及httpd配置
- Android WebView重定向GOBACK问题
- kvm静态迁移error: Cannot access storage file
- Linux 知:coredump