在带有多个if语句的for循环中继续使用时,是否可以获得性能?
我在一个Java程序中有一个for循环,该循环遍历一组映射。
在循环内部,我有大约10种不同的if语句,用于检查每个映射中每个键的名称。
例:
for (<String, Object> map : object.entrySet()) {  if (map.getKey().equals.("something") {
    do_something;
    continue;   
  }
  if (map.getKey().equals.("something_else") {
    do_something_else;
    continue;
  }
  if ...
}
这样添加继续语句时,我是否可以获得任何性能?
当我在IDE中逐步执行代码时,如果没有这些Continue语句,则即使第一个if语句匹配,也会测试每个if语句。
如果我像这样,并且第一个if匹配,则for循环将跳过接下来的9个if语句,并继续下一个对象。也许编译后的代码会以不同的方式对待它,而增加的continue语句实际上会使循环变慢?
回答:
而不是一直使用continue,getKey()只需执行一次并使用else if:
for (Map.Entry<String, Object> entry : map.entrySet()) {    String key = entry.getKey();
    if (key.equals("something")) {
        // ...
    } else if (key.equals("something else")) {
        // ...
    }
}
或使用一条switch语句:
for (Map.Entry<String, Object> entry : map.entrySet()) {    switch (entry.getKey()) {
        case "something":
            // ...
            break;
        case "something else":
            // ...
            break;
}
以上是 在带有多个if语句的for循环中继续使用时,是否可以获得性能? 的全部内容, 来源链接: utcz.com/qa/423564.html

