www.dbpj.net > jAvA 大量For循环如何优化

jAvA 大量For循环如何优化

1. .for循环中有不断new新对象的,看你的业务变化来优化了2. 普通的for循环,jvm都会自动优化代码,毋须程序员操心

第二个比第一个能略微好点 但效率跟第一个也差不多 第一个循环比较常见,大家基本上也都这么用.但是每一次i<strList.size(),都需要做一次判断,非常消耗时间,每一次i++,都需要消耗CPU的计算能力.当数据量达到一百万以上的时候,此时这个循环就容易出现内存溢出,程序崩溃(当然,一般的程序基本上都不会有那么大的数据量).建议这样改进 int len=strList.size(); int i=0; for(;i<len;i++){ } 当声明一个临时变量存储demo.length时,这时消耗的时间将少得多.

这个就看你的实际需求了,一般就是通过修改算法,减少for循环的次数,以此提高性能

在for循环里面如果有if语句判断,当业务中有一条符合要求并且取到合适的值的时候,这时候可以在if判断完后加一个break,这样for循环语句不会一直循环下去,节约了程序的性能

可以用foreach来遍历

为什么一次要处理这么大的数据量呢?1. 如果是前台展示,可以通过分页,每次只显示20~50行数据.2. 如果是进行数据处理,可以考虑使用后台存储过程实现.

或者把i++改成i+=2,步子迈大了,就行了(小心别扯蛋) 这个问题暴露了你对for的陌生,多写代码感觉就深刻了

你试试遍历一个集合去,没有增强for你还得加个迭代器. Set<String set = new HashSet<String(); Iterator<String it = set.iterator(); while (it.hasNext()) { String str = it.next(); System.out.println(str);}for循环遍历: System.out.println(str);}有点很明显了,节省多少代码呢看起来也方便,实现结果都一样.

foreach (type i: container ) 其中type是container容器中包含的数据类型.比如container如果是int arr[] 则type就是int型.foreach是基于迭代器实现的,如果容器没有实现迭代器,则不能够使用增强的for循环

能力有限,但很想帮你,初步能优化的方案bai如下du:根据你的循环最后要执行一个 判断,而判断中有几zhi个乘法,但你这样编写将导致一些不必dao要的计算次数,下面是优化方案:int i, j,k,l;int _i,_j,_k,_jk;for(i=2;i<=200;i++) { _i=i*i*i; for(j=2;j<=200;j++) { _j=j*j*j; for(k=j;k<=200;k++) { _k=k*k*k; _jk=_j+_k; for(l=k;l<=200;l++) { if(_i==_jk+(l*l*l)) 后面省内略,你看了这一的格式应该明白了! //相信这容样能明显提升速度了! } } }}

网站地图

All rights reserved Powered by www.dbpj.net

copyright ©right 2010-2021。
www.dbpj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com