平時工作中,寫各種業務代碼的時候,經常遇到需要做條件判斷的地方,在一些業務邏輯中,有時條件判斷的「或」判斷可能長達20多個。
例如:reg.equals("1") || reg.equals("2") || reg.equals("3")||...省去n個
這種情況是不是讓人很是崩潰?而且存在弊端:
這個時候代碼不好維護,字段多很容易出錯。
在最差情況下,執行語句要對這20個判斷都判斷一遍,才知道最終的結果,在高性能業務效率低下。
這個時候我們可以藉助map或set來進行判斷,因為hashmap是一個hash桶,查找的效率是比較快的,不管判斷任何值,查詢效率基本很穩定。
推薦指定hashmap的長度和需要判斷的元素一樣多,這樣就避免對某一個桶內衍生出多餘鏈表了。
具體的例子代碼如下:
代碼中打入了時間差來計算時間,運行測試的輸出如下:
很明顯,利用hashmap優化後的效率更高,有興趣的童鞋自己動手試試。
出處:博客園
閱讀更多 程序碼上說 的文章