MHDD不识别被检测的硬盘解决方法 (BIOS)可识别
2009-08-07 17:47
239 查看
在实际的开发中,经常会晕倒这样的问题,有两个List的数据,需要对这两个List的数据进行对比,然后筛选出需要的对象。
例如:财务中的对账,数据源一个是银行日记账(aList),一个是银行对帐单(bList),业务操作就是把两个List里面金额相同的记录筛选掉,剩下金额不相等的。
在实际开发中我目前知道有两个方式(假设两个List各有1000条数据):
1、最简单的就是用双重循环进行比较,虽然简单,但是如果两个List的数据量都很大,那么运行时间将成数量级增长。循环次数为1000*1000
2、把一个List通过循环放入Map中,把需要比较的字段作为Map的Key,然后循环另外一个List,到Map里面去匹配。
由于在Map中取数非常快,主要的耗时就在业务处理和循环上。循环次数为1000*2
但是第2种方法还是有不足的地方:
1、当比较的值有相同的时候,由于Key必须唯一,所以后面的值会覆盖掉前面的数据
2、当比较的内容比较复杂,或者是多项的时候,就比较难处理
我想在平时开发中大家应该都会遇到这样的问题吧,不知道大家有没有更好的方法来解决这个问题!!
例如:财务中的对账,数据源一个是银行日记账(aList),一个是银行对帐单(bList),业务操作就是把两个List里面金额相同的记录筛选掉,剩下金额不相等的。
在实际开发中我目前知道有两个方式(假设两个List各有1000条数据):
1、最简单的就是用双重循环进行比较,虽然简单,但是如果两个List的数据量都很大,那么运行时间将成数量级增长。循环次数为1000*1000
2、把一个List通过循环放入Map中,把需要比较的字段作为Map的Key,然后循环另外一个List,到Map里面去匹配。
for(A a : aList){ map.put(a.amount,a); } for(B b : bList){ A a = map.get(b.amount); if(a==null){ //a==null则说明没有同b匹配的项 }else{ //a!=null则说明匹配上了 } }
由于在Map中取数非常快,主要的耗时就在业务处理和循环上。循环次数为1000*2
但是第2种方法还是有不足的地方:
1、当比较的值有相同的时候,由于Key必须唯一,所以后面的值会覆盖掉前面的数据
2、当比较的内容比较复杂,或者是多项的时候,就比较难处理
我想在平时开发中大家应该都会遇到这样的问题吧,不知道大家有没有更好的方法来解决这个问题!!
相关文章推荐
- MHDD不识别被检测的硬盘解决方法 (BIOS)可识别
- 解决硬盘检测无法通过的方法
- Win10导致硬盘无法给BIOS识别修复方法 使用HDAT2_50 /W修复硬盘
- Windows Server 2003 R2 新加2T硬盘不能识别的或者识别的容量远远小于2T的解决方法
- windows2003自动识别移动硬盘的解决方法
- CentOS5 在HP Proliant DL140 G2上sata硬盘识别为hda问题的解决方法[转]
- 移动硬盘部分分区不能识别解决方法
- BIOS不识别硬盘,DIY解决希捷固件门(图解)
- 解决进入系统检测硬盘的方法
- sata硬盘识别不了的常见问题和解决方法
- 识别不了移动硬盘的解决方法
- 组装台式机后进入PE,检测不到硬盘的解决方法
- 解决windows 2000不能识别大硬盘的方法
- Win7系统经常弹出“Windows检测到一个硬盘问题”提示窗口的故障原因及解决方法
- 多种电脑不识别移动硬盘的解决方法,电脑识别不了移动硬盘
- 硬盘检测工具MHDD修复硬盘无法识别故障
- windows2003 系统下不能识别移动硬盘解决方法
- win2003不能识别移动硬盘的解决方法
- 每次开机都要检测硬盘(解决方法)
- 解决双系统问题,先安装win7,再安装ubuntu,发现ubuntu不能识别检测已经安装的win7,并且只能看到一整块硬盘的问题