這篇文章主要介紹了java如何替換switch,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
替換switch
關鍵字 switch 語句用于多條件判斷, switch 語句的功能類似于 if-else 語句,兩者性能也差不多。因此,不能說 switch 語句會降低系統的性能。但是,在絕大部分情況下,switch 語句還是有性能提升空間的。
來看下面的例子:
public static void main(String[] args) { long start = System.currentTimeMillis(); int re = 0; for (int i = 0;i<1000000;i++){ re = switchInt(i); System.out.println(re); } System.out.println(System.currentTimeMillis() - start+"毫秒");//17860 } public static int switchInt(int z){ int i = z%10+1; switch (i){ case 1:return 3; case 2:return 6; case 3:return 7; case 4:return 8; case 5:return 10; case 6:return 16; case 7:return 18; case 8:return 44; default:return -1; } }就分支邏輯而言,這種 switch 模式的性能并不差。但是如果換一種新的思路替代switch,實現相同的程序功能,性能就能有很大的提升空間。
public static void main(String[] args) { long start = System.currentTimeMillis(); int re = 0; int[] sw = new int[]{0,3,6,7,8,10,16,18,44}; for (int i = 0;i<1000000;i++){ re = arrayInt(sw,i); System.out.println(re); } System.out.println(System.currentTimeMillis() - start+"毫秒");//12590 } public static int arrayInt( int[] sw,int z){ int i = z%10+1; if (i>7 || i<1){ return -1; }else { return sw[i]; } }以上代碼使用全新的思路,使用一個連續的數組代替了 switch 語句。因為對數據的隨機訪問是非??斓?,至少好于 switch 的分支判斷。通過實驗,使用switch的語句耗時17860ms,使用數組的實現只耗時12590ms,提升了5s多。在軟件開發中,換一種思路可能會取得更好的效果,比如使用數組替代switch語句就是就是一個很好的例子。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何替換switch”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。