聊下枚舉

枚舉定義:

一組具名的值的有限集合。

一、枚舉的基本特性


簡單枚舉類

當創建枚舉類enum時,編譯器會生成一個類,這個類繼承與java.lang.Enum。

不能繼承一個枚舉。

1、枚舉里面的方法

a、values()

按順序返回所有的枚舉值。

values()方法是有編譯器添加的static方法。編譯器還添加了valueOf()方法。

Enum中valueof 需要兩個參數,而編譯器自己添加的這個valueof只需要一個參數。

由于values()方法是有編譯器插入到enum定義的static方法,所以,如果將enum實例向上轉型為Enum,那么values()方法就不可訪問,不過在Class中有一個getEnumConstants()方法,所以即便Enum接口中沒有values()方法,我們仍然可以通過Class對象取得所有enum實例。

b、valueof(String name)

根據名稱返回該枚舉

c、valueOf(Class<T> enumType,String name)

返回特定枚舉名稱和枚舉類型的枚舉

d、name()

返回該枚舉的名稱


二、如何有效的使用枚舉

1、在接口中對枚舉進行分組

由于無法從enum繼承子類,當我們想擴展原enum中的元素時,希望對enum中的元素進行分組。

這時候我們可以在接口內部,創建該實現該接口的枚舉,以此將元素進行分組,可以達到將美劇元素分組的目的。

2、EnumSet

enum可以算是一種集合,但是它不能去動態的增加或是刪除元素。

EnumSet算是對該特點的補充,因為enum里面的元素也都是唯一的,Set集合中的元素也都是唯一的。

EnumSet中的元素必須來自某種enum.

EnumSet.allOf(Color.class);創建包含某種enum 所有元素的set集合

EnumSet.of(Color.BLACK) 創建包含某種enum 下 某一個元素的集合。

3、EnumMap

EnumMap是一種特殊的Map,它要求其中的鍵必須來自一個enum,由于enum本身的限制,所以EnumMap在內部可有數組實現。


EnumMap數據結構


Enum構造函數


get實現


put實現
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • Chapter 6 Enums and Annotations 枚舉和注解 JAVA supports two s...
    LaMole閱讀 831評論 0 2
  • 定義枚舉 在定義枚舉類型時我們使用的關鍵字是enum,與class關鍵字類似,要注意,值一般是大寫的字母,多個值之...
    笨笨噠2018閱讀 365評論 0 0
  • 18.7.18一、概述枚舉常量在類型安全性和便捷性都很有保證,如果出現類型問題編譯器也會提示我們改進。除了不能繼承...
    靜心安分讀書閱讀 534評論 0 0
  • 一、什么是枚舉? 枚舉是由一組固定的常量組成的合法值。通過這一定義,我們可以看出枚舉的核心在于常量,而且常量是固定...
    Roger_黃閱讀 970評論 0 4
  • 他,我的初戀,我沒有真正開始的初戀
    一橋輕雨憶傘開閱讀 292評論 0 0