2014-01-29 28 views
1

所以我有一个Onclick监听器,它正在监听大约20个ID(view.getId()>> switch R.id ....)。我是不是在每个案例中都会放置突破性陈述来影响表现开关外壳和性能在android

感谢您的帮助。

回答

1

不把break会降低性能,如果有的话,作为代替退出switch块,你的应用程序将不得不通过其他case声明。

+0

感谢您的回答。刚刚发现这是一个很好的主意,硬的方式,我的应用程序是强制关闭,因为它试图在视图上执行xml rotaion动画,该视图在当时不可见(视图位于对话框中)。 **不能回答我自己的问题,因为我有一个学生的声誉。 – micnubinub

1

我知道你已经回答了你的问题,但我只是发表这个评论以防万一你对标题的回答特别感兴趣。一般而言,switch语句非常高效。你可以在网上找到很多有关不同java操作性能比较的细节,但是对于大型比较集,switch语句允许在最好的情况下直接索引到O(log2(n)),其中if语句开启平均n/2和n在最坏情况下。

此外,switch语句比long-if-else语句更易维护。

所以一般来说:如果你比较整数并且有2个以上的比较,通常最好使用switch语句,否则使用if-else。

欲了解更多详情:What is the relative performance difference of if/else versus switch statement in Java?

+0

谢谢,我会记住这一点。即使在问题得到解答后,您也很高兴提供信息。 – micnubinub