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,我們首先定義兩個後面會用到列舉類season和month
幫助enum
season
enum
month
使用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 =
new
season[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...