Performance: comparing/switch of a string value with categories
本问题已经有最佳答案,请猛点这里访问。
我有一个变量,它的值是我想要切换的,并且基于这些值执行操作。以下是我目前的工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | switch(myvalue) { case"action1_category1": doAction1(); break; case"action2_category1": doAction2(); break; case"action3_category1": doAction3(); break; case"action4_category2": doAction4(); break; case"action5_category2": doAction5(); break; case"action6_category2": doAction6(); break; ... } |
所以,我在想,为什么不把变量分为两类,然后这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | if(myvalue.endsWith("category1") { switch(myvalue) { case"action1_category1": doAction1(); break; case"action2_category1": doAction2(); break; case"action3_category1": doAction3(); break; ... } } else { switch(myvalue) { case"action4_category2": doAction4(); break; case"action5_category2": doAction5(); break; case"action6_category2": doAction6(); break; ... } } |
这种新方法会提高或降低我的性能吗?谢谢您。
好吧,我将向微优化的第一个解决方案迈进……但现在这种哲学被认为是邪恶的。这里有一个提示