前几天有人问过我一个问题,就是两个嵌套for循环执行效率的问题,问有什么好的办法替换。当时我想了想,实在想不起来,哎,惭愧!!! 请教了答案,恍然大悟。
创新互联是一家专业提供溆浦企业网站建设,专注与成都网站设计、网站建设、HTML5建站、小程序制作等业务。10年已为溆浦众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。比如:两个list中分别装有相同的对象数据。 list1中有3万条对象数据。 list2中有2万条对象数据(但是对象中的某个属性变量为空)。两个list中的id或者其他变量都一模一样。请用最快的方式找出list2中变量为空的那个对象,并且去list1中找出id相同的对象。 或者可以理解成,从list2中找出变量为空的,去list1中找出对应的对象,然后把为空的列补上。总之就是这么一个意思,先 for 循环 list2,判断一下每个对象的那个属性变量是否为空,如果为空,再去for循环list1,找出id一样的对象,就算执行成功了。
那么请看下边的for循环嵌套的解决方式:
for(Member m2:list2){ if(m2.getName()==null){ for(Member m1:list1){ if(m1.getId().intValue()==m2.getId().intValue()){ System.out.println(m2.getId()+" Name 值为空!!!"); } } } }