在具有许多if语句的for循环中使用continue时是否获得了性能?

kom*_*men 2 java performance for-loop

我在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 ...
}
Run Code Online (Sandbox Code Playgroud)

添加像这样的continue语句时,我是否获得了任何性能?

当我在IDE中单步执行代码而没有这些continue语句时,即使第一个if语句匹配,也会对每个if语句进行测试.

如果我有这样的和第一个if匹配,for循环将跳过接下来的9个if语句并继续下一个对象.也许编译后的代码会以不同的方式处理它,添加的continue语句实际上会使循环更慢?

Jes*_*per 9

而不是一直使用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")) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

或使用switch声明:

for (Map.Entry<String, Object> entry : map.entrySet()) {
    switch (entry.getKey()) {
        case "something":
            // ...
            break;

        case "something else":
            // ...
            break;
}
Run Code Online (Sandbox Code Playgroud)