2014-01-29 23 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