对于我的工作,我必须开发一个小型 Java 应用程序来解析非常大的 XML 文件(~300k 行)以选择非常具体的数据(使用 Pattern
),所以我试图对其进行一些优化。我想知道这两个片段之间有什么更好的地方:
if (boolean_condition && matcher.find(string)) {
...
}
或者
if (boolean_condition) {
if (matcher.find(string)) {
...
}
}
其他详情:
- 这些 if 语句在循环内的每次迭代中执行(~20k 次迭代)
boolean_condition
是一个boolean
使用外部函数在每次迭代中计算- 如果
boolean
设置为false
,我不需要测试匹配的正则表达式
谢谢你的帮助。
原文由 3rgo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我遵循的一条黄金法则是尽可能地“ 避免嵌套”。但是,如果以让我的单一 if 条件过于复杂为代价,我不介意将其嵌套。
此外,您正在使用短路
&&
运算符。所以如果布尔值是假的,它甚至不会尝试匹配!所以,
是要走的路!