for循环,数据量很大,导致结果很慢,求解

哈哈哈· 2017-02-22 02:20:10
在项目中遇到了一个问题,for循环中数据量很大,并且是多重for循环(每一重循环中数据量都有可能很大)。这样导致结果很慢,有什么可以优化的方法吗,求解。另外,在项目中的for循环中有需要返回的值。此处以双重for循环为例。

public void nest(){
long startTime = System.currentTimeMillis();
int flag = 0;
for(int i = 0 ; i < 1000 ;i++){
for(int j=0; j<1000; j++){
flag ++;
System.out.println(flag);
}
}
long endTime = System.currentTimeMillis();
System.out.println("用时:"+(endTime - startTime));
}


小弟也想过多线程,但是好像使用多线程并没有提高速度。哪位大神可以给指条明路。或者来个简单的demo。多谢啊


...全文
13765 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
King* 2020-03-05
  • 打赏
  • 举报
回复
多核并行,java里面是Fork/Join框架,matlab里面就很简单,parpool和parfor就ok
大Py 2020-02-27
  • 打赏
  • 举报
回复
可以使用一定的数据结构,而不是for循环
小包包007 2019-11-28
  • 打赏
  • 举报
回复
引用 11 楼 牛逼气死110 的回复:
[quote=引用 8 楼 ice_ice_cream 的回复:] 将任务分解,充分利用cpu。建议你看下java并发包里的Fork/Join框架。
呃。。。 [/quote]确实是这样,,,将任务分解,,,使用并发来处理
  • 打赏
  • 举报
回复
如果只是要查询一个很大的list是否还有一个值,可以先不用list遍历,可以把list转为map,在用
哈哈哈· 2017-02-22
  • 打赏
  • 举报
回复
引用 8 楼 ice_ice_cream 的回复:
将任务分解,充分利用cpu。建议你看下java并发包里的Fork/Join框架。
呃。。。
IT油条 2017-02-22
  • 打赏
  • 举报
回复 1
for循环的优化:http://www.cnblogs.com/liushuijinger/p/4126928.html 如果代码上没法优化就只能从业务从流程上想办法了
a527435908 2017-02-22
  • 打赏
  • 举报
回复 1
你把print 去掉,就算优化
沙子 2017-02-22
  • 打赏
  • 举报
回复
将任务分解,充分利用cpu。建议你看下java并发包里的Fork/Join框架。
把分全给哥 2017-02-22
  • 打赏
  • 举报
回复 1
量变产生质变 动态规划,使程序一直处于量变的形态中
jiajing1990_ 2017-02-22
  • 打赏
  • 举报
回复
如何来优化 其实还要根据实际应用的场景吧
zhujinqiang 2017-02-22
  • 打赏
  • 举报
回复
把for循环改为foreach循环试试 循环变量i,改成事先计算好1-1000的数组 就不需要在for循环里面计算循环变量i了
bcsflilong 2017-02-22
  • 打赏
  • 举报
回复
多线程也不见得就能优化速度 你只能考虑优化for中的代码 别的也没有什么好的解决方案
哈哈哈· 2017-02-22
  • 打赏
  • 举报
回复
引用 1 楼 ryuugu_rena 的回复:
可以考虑下优化一下数据结构。
如果可以减少for循环就好办了,关键是不好减少啊。有没有其他办法
zs808 2017-02-22
  • 打赏
  • 举报
回复
1.减少for循环的循环次数 2.优化循环体内的代码,加快代码速度
ryuugu_rena 2017-02-22
  • 打赏
  • 举报
回复
可以考虑下优化一下数据结构。

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧