Java语言中For循环算法是不是很占据CPU资源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言中For循环算法是不是很占据CPU资源相关的知识,希望对你有一定的参考价值。

如果for循环次数比较多 或者经常要循环 是不是对cpu的压力会比较大呢?
我测试了2段代码 感觉有for循环的要比if else的要卡好多.....

参考技术A 慢的原因是你在对List的循环中使用了List的get函数.
典型的"Shlemiel喷涂算法",所以越跑越慢啊.
List里是一个链表,get方法会从头一个个地数,越到后面,数的时间就越长.所以会慢..
你应该修改方式,用下面的方法进行循环:
for(Iterator it = list.iterator(); it.hasNext() ;)
Map map = (Map)it.next();
// ...
参考技术B 没听说过这样的问题!但我感觉对于for循环嵌套的越多,效率就可能会越低。本回答被提问者采纳 参考技术C 有必要的话还是要用的 参考技术D 但是必须要用滴. 第5个回答  2011-01-14 不是啊,这个是线程的问题了

java用for循环输出长方形

以下是代码,但是一点运行就出现电脑cpu使用率100%,是不是死循环了?是定义的变量有问题还是其它错误,请教高手啊啊啊
public class Theer
public static void main(String[] args)

for(int a=1;a<=9;a+=2)
for(int b=9;b>a-1;a--)
System.out.print("");

for(int c=1;c<=a;c++)
System.out.print("*");

System.out.println();

for(int d=1;d<=7;d+=2)
for(int e=1;e<d+3;d++)
System.out.println();

for(int f=7;f>=d;f--)
System.out.println("*");

System.out.println();


我也是java新手 看了一下你的代码有两处错误for(int b=9;b>a-1;a--) 迭代部分不应该是a--而应该是b--,是a--的话循环会因到不到结束条件而进入死循环,,下面的 for(int e=1;e<d+3;d++)也是同理应为e++.另外你下面的输出代码应该是print而不是println,for(int e=1;e<d+3;e++)后的输出应该是print("")追问

谢谢,但是我改了之后输出的前半部分是直角三角形,还木有输出长方形。

参考技术A for (int a = 1; a <= 9; a += 2)
for (int b = 9; b > a - 1; a--)
。。。。
第一层循环 a = 1, 进入第二层循环
int b = 9
b > a - 1 -- > 0 > 1 -1
a-- 而且是a--

那条件 b > a - 1 永远成立,所以死循环追问

谢谢、

本回答被提问者和网友采纳
参考技术B for(int b=9;b>a-1;a--)
System.out.print("");

这里就死循环了。。。
如果b>a-1,那么在a--之后,必然(更加)会是b>a-1追问

谢谢

以上是关于Java语言中For循环算法是不是很占据CPU资源的主要内容,如果未能解决你的问题,请参考以下文章

java 多线程问题 真的提高了效率吗?

java用for循环输出长方形

无限循环的线程是不是会导致 CPU 过多

Java中啥时候使用空循环体?

JAVA进程与线程

C语言for循环 求1--10阶乘的和