說明
1、EnumSet可以存儲一個枚舉中的元素,它提供了一種通過集合來操作枚舉類的方式。
2、EnumSet中的所有元素都必須指定枚舉類型的枚舉值,這種枚舉類型在創(chuàng)建EnumSet時是顯性的或隱性的。
實例
/**
* EnumSet 的設(shè)計充分考慮到了速度因素,因為它必須與非常高效的 bit 標(biāo)志相競爭(其操作與 HashSet 相比,非常地快).
* 就其內(nèi)部而言,它(可能)就是將一個 long 值作為比特向量,所以 EnumSet 非??焖俑咝А?/p>
* 使用 EnumSet 的優(yōu)點是,它在說明一個二進制位是否存在時,具有更好的表達能力,并且無需擔(dān)心性能。
*/
private static void enumSet() {
// 空構(gòu)造器
EnumSetweekEnums = EnumSet.noneOf(WeekEnum.class);
weekEnums.add(WeekEnum.MON);
weekEnums.add(WeekEnum.TUE);
weekEnums.add(WeekEnum.WEB);
// of工廠,可以接收多個enum
weekEnums.addAll(EnumSet.of(WeekEnum.THUR, WeekEnum.FRI, WeekEnum.SAT, WeekEnum.SUN));
System.out.println(weekEnums);
// range-范圍
weekEnums.removeAll(EnumSet.range(WeekEnum.MON, WeekEnum.WEB));
System.out.println(weekEnums);
// 創(chuàng)建一個與指定枚舉集具有相同元素類型的枚舉集,最初包含指定集中未包含的所有此類型的元素。
weekEnums = EnumSet.complementOf(weekEnums);
System.out.println(weekEnums);
}
以上就是java中EnumSet的使用,希望對大家有所幫助。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。