是使用switch语句还是使用if语句,或者将案例放入hashMap并仅使用contains方法,速度更快?

ave*_*ael 1 java

我目前有很长的if语句:

if (somesTring != null && !"".equals(somestring)
  SomeClass.doSomething();
else if (somesTring != null && !"".equals(somestring)
  SomeClass.doAnother();
...
else
  SomeClass.giveUp();
Run Code Online (Sandbox Code Playgroud)

我认为当相关项目位于决策树的底部时,执行效果会很差。我正在考虑switch语句,据我的同事所说,这是更快的。可悲的是,比较是使用字符串执行的,switch语句不支持该字符串。也许我可以获取所涉及字符串的哈希码,并将其用于switch语句。

我也在考虑一个包含每个字符串的哈希图,并在containsKey方法的帮助下做出决定。但是,这涉及到必须分割一个包含许多静态方法的类,并使这些方法中的每一个都成为某种程度上可执行的对象。通过这样做,我可以处理非常大的“ if”语句。

关于执行时间,良好实践和可维护性,上述哪种方法更有意义?欢迎其他建议:)

iso*_*bar 5

使用命令模式。您可以完全摆脱if语句

这是类似的问题

Java中if语句的详细列表

通过使用命令,

执行时间-您可以验证。不要以为它会有很大的不同。

好的做法-是的

可维护性-是的,已经建立了一种模式。