Java實現高效的枚舉元素集合
Set是Java集合類的重要組成部分,它用來存儲不能重復的對象。枚舉類型也要求其枚舉元素各不相同。看起來枚舉類型和集合是很相似的。然而枚舉類型中的元素不能隨意的增加、刪除,作為集合而言,枚舉類型非常不實用。EnumSet是專門為enum實現的集合類,本實例將演示其用法。
思路分析:可以通過為EnumSet指定類型,該類型即為在同一包中定義的枚舉類。使用EnumSet類的add()方法添加元素,使用EnumSet類的remove()方法刪除元素,使用EnumSet類的complementOf()方法獲取對象的全部,使用EnumSet類的range()方法獲取指定范圍的元素。
代碼如下:
Weeks.java: packagecn.edu.xidian.crytoll; publicenumWeeks{ MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURADAY,SUNDAY } EnumSetTest.java: packagecn.edu.xidian.crytoll; importstaticcn.edu.xidian.crytoll.Weeks.MONDAY; importstaticcn.edu.xidian.crytoll.Weeks.THURSDAY; importjava.util.EnumSet; publicclassEnumSetTest{ publicstaticvoidmain(String[]args){ EnumSetweek=EnumSet.noneOf(Weeks.class); week.add(MONDAY); System.out.println("EnumSet中的元素:"+week); week.remove(MONDAY); System.out.println("EnumSet中的元素:"+week); week.addAll(EnumSet.complementOf(week)); System.out.println("EnumSet中的元素:"+week); week.removeAll(EnumSet.range(MONDAY,THURSDAY)); System.out.println("EnumSet中的元素:"+week); } } |