回覆列表
-
1 # SteveJrong
-
2 # Hz赫茲
在Java程式設計中有。
如果有選擇,使用enum是比String更好的方法。 它的效能優於String,同時還是型別安全的。如果引數集有限並且在編譯時已知,那麼使用enum。但如果引數集在編譯時未知或者是開放的,那也就別無選擇了,只能使用字串。
-
3 # 拒海
結論是會有效能損失
主要是比較兩個物件
enum 可以理解為單例的,比較時直接比較物件引用,可以簡單的理解為整型物件比較,時間複雜度是 1
string 呢,實際用到 equals 方法,看過程式碼應該知道,是逐個字元比較的。時間複雜度是 n,字串越長越耗時
作為 map 的 key,或者用到 switch 語句,這樣的效能差異都不算小了
有。
以c語言為例,在記憶體中建立一個字串至少需要一個char陣列來儲存,因為要儲存結束識別符號;而列舉實際則是一個結構,其內的列舉項可以定義為整型,要比字串的儲存方便,也開銷少。
而且把字串當做列舉來用,字串也容易寫錯,而列舉都定義成數字常量,編譯器編譯時容易發現錯誤,提示開發者及時改正,便於維護。