Java.util中添加了兩個新類,EnumMap和EnumSet來支持枚舉類型。
5.EnumMap類:枚舉類型實例到值的映射
Map是Java中的一個類,EnumMap是Map的子類。Map(映射)是一個二元組的集合,它中的每個元素都是由<Key,value>兩個屬性組成,通過Key很容易找到對應的value。
1 import java.util.EnumMap; 2 import java.util.Map; 3 4 enum Color{紅色,綠色,藍色}; 5 public class EnumMapDemo 6 { 7 public static void main(String[] args) 8 { 9 EnumMap<Color,String> ep = new EnumMap<Color,String>(Color.class);//實例化對象,構造參數不能為空 10 ep.put(Color.紅色, "RED");//一對<Key,value>映射 11 ep.put(Color.綠色, "GREEN"); 12 ep.put(Color.藍色,"BLUE"); 13 for(Map.Entry<Color, String>me:ep.entrySet()) 14 { 15 System.out.println(me.getKey()+"-->"+me.getValue()); 16 } 17 } 18 }
其中,EntrySet()是定義在Map類中的一個方法,其作用是返回整個映射實例的集合。EntrySet()方法中的Set表示的含義是“集合”。
6.EnumSet類:枚舉類型集合操作(如交、並、補等)
Set是一個一元組集合,其包含一系列不可重復的數據。EnumSet是Set的子類。Set可以理解為,只包含元素Key的集合。
1 import java.util.EnumSet; 2 import java.util.Iterator; 3 4 enum Color{紅色,綠色,藍色}; 5 public class EnumSetDemo 6 { 7 public static void main(String[] args) 8 { 9 EnumSet<Color> es = EnumSet.allOf(Color.class);//將枚舉全部內容設置到集合 10 Iterator<Color> iter = es.iterator();//指向枚舉類型Color的迭代器 11 while(iter.hasNext())//判斷集合中是否還有元素 12 { 13 System.out.println(iter.next());//遍歷集合類的元素並輸出 14 } 15 } 16 }
上述例子測試了EnumSet類的靜態方法allOf()。
1 import java.util.EnumSet; 2 import java.util.Iterator; 3 4 enum Color{紅色,綠色,藍色}; 5 public class EnumSetDemo 6 { 7 public static void main(String[] args) 8 { 9 EnumSet<Color> es = EnumSet.noneOf(Color.class);//枚舉類型的空集合 10 Iterator<Color> iter = es.iterator();//指向枚舉類型Color的迭代器 11 while(iter.hasNext()) 12 { 13 System.out.println(iter.next());//null,無輸出 14 } 15 } 16 }
上述例子測試了EnumSet類的靜態方法noneOf()。