关闭

高效的运用MAP类实现“比较”的功能

298人阅读 评论(0) 收藏 举报

问题:A表有一个字段mm唯一确定一条数据而且也有字段cc有数据,B表也存在mm字段也有cc字段,但是没有数据,目的:希望将B表的cc字段和A表的cc字段同步

 

策略一:

查询B表的数据,逐一遍历每条数据,根据B表的mm字段连接到查询A表的mm字段,就知道A表的cc字段,然后将cc字段的值给B表的cc字段,然后更新数据库

 

策略二:

首先查询A表的所有数据,全部放在一个数组(或者链表)中,查询B表的数据,然后根据B表的mm值与数组一一比对,如果是一致就退出循环,然后给B表的cc字段赋值,更新数据库

 

策略三:

首先查询A表的所有数据,然后将查询的值存放在一个Map对象中map<mm,cc>按照这种格式存放数据,然后查询B表的数据,遍历B表的每个数据,判断map表中是否存在keymm的数据,如果存在则取出这个值给B

 

分析:

策略一:这种方式是最简单也是最麻烦的,因为每次都需要查询数据库,然后在经历两次循环,最后更新数据库,在“海量”数据中这种操作是致命的,可能会导致系统崩溃,不推荐使用这种方式

 

策略二:这种方式比第一种方式好很多,因为他减少了对数据库的查询,而且将查询的内容放在缓存中,然后循环比较,将查询到的结果同步到数据库B中,但是这里面却依然是含有两层循环,效率依然不高

 

策略三:这种方法跟第一种方法类似,第一次也是查询A表的所有数据,将查询的结果存放在HashMap中,然后查询B表的数据,逐一遍历每项数据,判断HashMap中是否存在keymm的值,如果有就将value赋给B表查询的对象,这样就只利用了一层循环,就能够找到结果赋给B表,效率更高

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:323427次
    • 积分:8888
    • 等级:
    • 排名:第2228名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论