前几天有人问过我一个问题,就是两个嵌套for循环执行效率的问题,问有什么好的办法替换。当时我想了想,实在想不起来,哎,惭愧!!! 请教了答案,恍然大悟。

比如:两个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 值为空!!!");

}

}

}

}

这样真的好吗? 如果有上万,甚至十几万的数据,那么这个执行效率问题,我就不多说了。 非常非常的慢。

下边来看使用map代替的执行方式,

java双重for循环 效率_Java优化for循环嵌套的高效率方法相关推荐

  1. java for嵌套循环_Java优化for循环嵌套的高效率方法

    前几天有人问过我一个问题,就是两个嵌套for循环执行效率的问题,问有什么好的办法替换.当时我想了想,实在想不起来,哎,惭愧!!! 请教了答案,恍然大悟. 比如:两个list中分别装有相同的对象数据. ...

  2. java for循环写法优化,Java优化for循环嵌套的高效率方法

    前几天有人问过我一个问题,就是两个嵌套for循环执行效率的问题,问有什么好的办法替换.当时我想了想,实在想不起来,哎,惭愧!!! 请教了答案,恍然大悟. 比如:两个list中分别装有相同的对象数据. ...

  3. java双重for循环流程图_java 流程执行 循环 foreach循环

    一. if分支 1. 结构  if  else if   else 2.执行原则 if  if  if 结构  会一直去执行()里的判断语句 if else if  else if 结构  只要一条( ...

  4. java双重for循环流程图_Java的for循环

    Java有好几种循环语句. for循环是Java的循环之一. for循环在java中用于重复执行一些语句,直到条件返回false. for循环有以下三个部分. 初始化 循环条件 自增或自减 for循环 ...

  5. java 循环写法_java的for循环的几种写法

    J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类 ...

  6. java中的循环结构_Java中的循环结构进阶

    循环结构进阶 学习本章用到的单词 triangle:三角形 circle:圆形 diamond:钻石 password:密码 row:行.排列 二重循环结构 简单的说:二重循环就是一个循环体内又包含另 ...

  7. java的for循环嵌套_优化Java的for循环嵌套的高效率方法

    两个list中分别装有相同的对象数据. list1中有3万条对象数据. list2中有2万条对象数据(但是对象中的某个属性变量为空).两个list中的id或者其他变量都一模一样.请用最快的方式找出li ...

  8. java list 效率_Java中5种List的去重方法及它们的效率对比,你用对了吗?

    01.使用两个for循环实现List去重(有序) /**使用两个for循环实现List去重(有序) * * @param list * */ public static List removeDupl ...

  9. java 双重检查锁 有序_Java中的双重检查锁(double checked locking)

    1 public classSingleton {2 private staticSingleton uniqueSingleton;3 4 privateSingleton() {5 }6 7 pu ...

最新文章

  1. C 内存free()出错
  2. C#利用ICSharpCode.SharpZipLib.dll压缩文件和解压文件
  3. LJL-Solution-vss2005在项目中连接不上 解决方案
  4. java第二次测试笔试题_微软第二次笔试第一题java代码 已AC
  5. u-boot中添加自定义命令
  6. 关于eclipse web项目认不到用户库的问题
  7. 中国医美市场趋势洞察报告
  8. (39)System Verilog程序Program设计实例
  9. adb 查看屏幕大小_蚂蚁森林自动收取能量、偷取能量、浇水(使用adb、python)...
  10. STM8单片机低功耗---活跃停机(Active Halt)模式实现-1
  11. CentOS6中连接ftp服务器下载文件时出现了java.net.SocketException: Connection reset
  12. 在web项目启动时,使用监听器来执行某个方法
  13. 第一章:x264视频制作meGUI工具下载
  14. 常用HTML转义字符,
  15. 软件测试论坛_进阶测试攻略——价值驱动的软件测试
  16. 软件著作权申请教程模板材料下载
  17. 计算机本科结题验收报告怎么写,课题结题鉴定书
  18. 谷歌gmail注册入口_Gmail,日历和其他Google Apps即将出现的外观如下
  19. PCB板材的基本分类
  20. 10月11日科技联播:美股暴跌引全球股市崩盘;腾讯跌出全球市值前十

热门文章

  1. ARM Context synchronization event和Instruction Synchronization Barrier
  2. java openjdk_OpenJDK的安装与配置
  3. OpenJDK能替代Oracle JDK 吗
  4. html语言中单标记,html代码中常见的单标记有
  5. 快递查询,分享最简单的方法查询退回件信息
  6. cmd之xcopy命令实例
  7. Zjh游戏(一)服务器连接、接收消息
  8. 活力长者社区(C语言)
  9. 项目范围管理:项目范围确认
  10. 真菌和细菌高通量测序引物选择