3rg*_*rgo 39 java optimization if-statement multiple-conditions
对于我的工作,我必须开发一个小型Java应用程序来解析非常大的XML文件(~300k行)以选择非常具体的数据(使用Pattern
),所以我试图对它进行一些优化.我想知道这两个片段之间哪个更好:
if (boolean_condition && matcher.find(string)) {
...
}
Run Code Online (Sandbox Code Playgroud)
要么
if (boolean_condition) {
if (matcher.find(string)) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
更精确:
boolean_condition
是boolean
使用外部函数在每次迭代时计算的boolean
设置为false
,我不需要测试匹配的正则表达式谢谢你的帮助
ada*_*shr 53
我遵循的一条黄金法则是尽可能避免嵌套.但如果以使我的单一if条件过于复杂为代价,我不介意将其嵌套.
除此之外,您还在使用短路&&
运营商.因此,如果布尔值为false,它甚至不会尝试匹配!
所以,
if (boolean_condition && matcher.find(string)) {
...
}
Run Code Online (Sandbox Code Playgroud)
是要走的路!
Jon*_*han 19
以下两种方法:
public void oneIf(boolean a, boolean b)
{
if (a && b)
{
}
}
public void twoIfs(boolean a, boolean b)
{
if (a)
{
if (b)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
为方法体生成完全相同的字节代码,因此不会有任何性能差异,这意味着它纯粹是一种你使用的风格问题(我个人更喜欢第一种风格).
两种方式都可以,如果第一个条件为假,则不会测试第二个条件。
使用使代码更具可读性和可理解性的方法。对于仅两种情况,第一种方式更具逻辑性和可读性。与&&
,||
和相关联的 5 或 6 个条件可能不再是这种情况!
。
归档时间: |
|
查看次数: |
67147 次 |
最近记录: |