关于ZAKER 融媒体解决方案 合作 加入

java- 在带有许多 if 语句的 for 循环中使用 contin.

CocoaChina 10-23

我在一个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:

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;}

以上内容由"CocoaChina"上传发布 查看原文
相关标签 switchjava语句

觉得文章不错,微信扫描分享好友

扫码分享