Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

平時工作中,寫各種業務代碼的時候,經常遇到需要做條件判斷的地方,在一些業務邏輯中,有時條件判斷的「或」判斷可能長達20多個。

例如:reg.equals("1") || reg.equals("2") || reg.equals("3")||...省去n個

這種情況是不是讓人很是崩潰?而且存在弊端:

  1. 這個時候代碼不好維護,字段多很容易出錯。

  2. 在最差情況下,執行語句要對這20個判斷都判斷一遍,才知道最終的結果,在高性能業務效率低下。

Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

這個時候我們可以藉助map或set來進行判斷,因為hashmap是一個hash桶,查找的效率是比較快的,不管判斷任何值,查詢效率基本很穩定。

推薦指定hashmap的長度和需要判斷的元素一樣多,這樣就避免對某一個桶內衍生出多餘鏈表了。

具體的例子代碼如下:

Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

代碼中打入了時間差來計算時間,運行測試的輸出如下:

Java邏輯條件多個「或」判斷時,性能優化小技巧,值得一試

很明顯,利用hashmap優化後的效率更高,有興趣的童鞋自己動手試試。

出處:博客園


分享到:


相關文章: