今天在完成我的任务时想到的问题是关于循环效率..
说吧。我有一个数组 {'a','x','a','a'} 以及一个应该避免“x”元素的循环 现在我想知道这两种方法在效率方面有何不同 - 不采用 while 或 do-while 或 for 循环区分
char[] arrExample = {'a','x','a','a'};
for(int idx = 0; idx<arrExample.length; idx++){
if(arrExample[idx] == 'x')
continue;
System.out.println(arrExample[idx]);
}
普通循环看起来像这样
char[] arrExample = {'a','x','a','a'};
for(int idx = 0; idx<arrExample.length; idx++){
if(arrExample[idx] != 'x')
System.out.println(arrExample[idx]);
}
所以.. 专家评论很高兴。谢谢!
最佳答案
即使您使用未优化的字节码,它也几乎相同。只有两个真正的区别。首先是跳转语句的放置,但该跳转语句仍将执行相同的次数。此外,== 和 != 运算符都是原子运算符,执行两者所花费的时间相同。
如前所述,使用对您有意义的任何东西。但我不得不承认,continue 语句版本读起来相当笨拙。
关于Java 循环效率。如果继续或如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887769/