EnumSet的幾個例子

2021-09-02 08:43:58 字數 2500 閱讀 5189

enumset

是乙個與列舉型別一起使用的專用 set 實現。列舉set中所有元素都必須來自單個列舉型別(即必須是同型別,且該型別是enum的子類)。

列舉型別在建立 set 時顯式或隱式地指定。列舉 set 在內部表示為位向量。 此表示形式非常緊湊且高效。此類的空間和時間效能應該很好,

足以用作傳統上基於 int 的「位標誌」的替換形式,具有高品質、型別安全的優勢。

enumset

是個虛類,我們只能通過它提供的靜態方法來返回

enumset

的實現類的例項。

返回enumset的兩種不同的實現

:如果enumset大小小於64,

就返回regularenumset例項(當然它繼承自enumset),這個enumset實際上至用了乙個long來儲存這個enumset。

如果 enumset大小大於等於64,則返回jumboenumset例項,它使用乙個long來儲存。這樣做的好處很明顯: 大多數情況下返回的regularenumset效率比jumboenumset高很多。(摘自:

本文給出enumset使用的幾個例子:

為了測試enumset,我們首先定義兩個後面會用到列舉類seasonmonth

幫助enumseason

enummonth

使用noneof方法建立空的enumset

幫助

// 建立乙個空的enumset

setemptyenumset = enumset.noneof(season.class);

system.out.println(emptyenumset);//

使用enumset.allof方法建立乙個擁有所有列舉類元素的enumset

幫助

setenumset = enumset.allof(season.class);

system.out.println(enumset);// [spring, summer, autumn, winter]

使用enumset.of方法返回擁有部分元素的enumset

如下面的例子,我們從月份的列舉類得到夏季、冬季擁有的月份組成的enumset:

幫助

setsummer = enumset.of(month.april, month.may, month.june);

system.out.println(summer);// [april, may, june]

setwinter = enumset.of(month.october, month.november,

month.december);

system.out.println(winter);// [october, november, december]

使用addall方法,新增乙個enumset中的所有元素到另外乙個enumset

幫助

emptyenumset.addall(enumset);

system.out.println(emptyenumset);// [spring, summer, autumn, winter]

使用toarray方法,將enumset中的元素存放到陣列中去

幫助

// 將enumset轉換成陣列型別

season seasons =newseason[enumset.size()];

enumset.toarray(seasons);

system.out.println(arrays.deeptostring(seasons));// [spring, summer,

// autumn, winter]

儲存過程幾個例子

create or replace procedure peace if is cursor var c is select from grade begin for temp in var c loop if temp.course name os then dbms output.put lin...

java註解的幾個例子

註解的生命階段 1.原始檔 source 2.class檔案 class 3.記憶體中 runtime retentionpolicy 是乙個列舉 一共就這三個值,用來表示註解的生命階段 override retentionpolicy.source suppresswarnings retenti...

閉包的幾個例子

記錄關於閉包的幾個例子,網上介紹閉包文章很多,暫時就不作解釋。1.作用域鏈的延伸var global 1 function outer return inner 必須return出去 inner 62.全域性函式佔位符var inner placeholder var f function inne...