枚舉(二)類集對於枚舉的支持


Java.util中添加了兩個新類,EnumMapEnumSet來支持枚舉類型。

5.EnumMap:枚舉類型實例到值的映射

MapJava中的一個類,EnumMapMap的子類。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是一個一元組集合,其包含一系列不可重復的數據。EnumSetSet的子類。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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM