Java枚举(二)
2014-05-23 19:50
106 查看
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
5.Java类集对枚举的支持——EnumMap、EnumSet
5.1 EnumMap
EnumMap是Map接口的子类,所以本身还是以Map的形式进行操作,即Key------->value的形式,如果要使用EnumMap,首先要创建EnumMap的对象,在创建此对象时必须要指定要操作的枚举类型。
5.2 EnumSet
EnumSet是Set接口,所以里面的内容是无法重复的,使用EnumSet时不能使用new关键字进行实例化,所以在此类中有很多静态方法。
因为接口中会存在抽象方法,所以,枚举中的每个对象都必须实现此抽象方法。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
----------------------
5.Java类集对枚举的支持——EnumMap、EnumSet
5.1 EnumMap
EnumMap是Map接口的子类,所以本身还是以Map的形式进行操作,即Key------->value的形式,如果要使用EnumMap,首先要创建EnumMap的对象,在创建此对象时必须要指定要操作的枚举类型。
package enumTest; import java.util.EnumMap; import java.util.Map; public class EnumMapDemo { enum Color { RED, BLUE, YELLOW; } public static void main(String[] args) { Map<Color, String> mp = null; mp = new EnumMap<Color, String>(Color.class); // 将指定的值与指定的键关联,key是关联的键,value是关联的值 mp.put(Color.BLUE, "蓝色"); mp.put(Color.RED, "红色"); mp.put(Color.YELLOW, "黄色"); System.out.println("=====输出全部内容====="); for (Color c : Color.values()) { System.out.println(c.ordinal() + "--->" + c.name()); System.out.println(c.name() + "--->" + mp.get(c));//get()方法返回指定键所映射的值,如果没有映射返回null } System.out.println(); System.out.println("======输出全部键======"); for(Color c:mp.keySet()){ System.out.println(c.name()+"、"); } System.out.println("======输出全部值======="); for(String s: mp.values()){ System.out.println(s+"、"); } } }
5.2 EnumSet
EnumSet是Set接口,所以里面的内容是无法重复的,使用EnumSet时不能使用new关键字进行实例化,所以在此类中有很多静态方法。
package enumTest; import java.util.EnumSet; public class EnumSetDemo { enum Color { RED, BLUE, YELLOW; } public static void main(String[] args) { EnumSet<Color> es = null; // 将枚举中的所有文件获取到集合中 es = EnumSet.allOf(Color.class); print(es); System.out.println(); // 设置一个指定到集合中 EnumSet<Color> es1 = null; es1 = EnumSet.of(Color.BLUE); print(es1); System.out.println(); // 创建可以加入指定类型的对象,创建一个具有指定内容的set EnumSet<Color> es2 = null; es2 = EnumSet.noneOf(Color.class); es2.add(Color.RED); es2.add(Color.YELLOW); print(es2); System.out.println(); // 创建不包含指定内容的Set EnumSet<Color> es3 = null; es3 = EnumSet.complementOf(es2); print(es3); System.out.println(); // 复制包含指定内容的Set EnumSet<Color> es4 = null; es4 = EnumSet.copyOf(es2); print(es4); } private static void print(EnumSet<Color> temp) { for (Color c : temp) { System.out.println(c + "、"); } } }6. 让枚举实现一个接口
package enumTest; public class InterfaceEnumDemo { enum Color implements InterfaceEnum { RED { @Override public String getColors() { return "红色"; } }, BLUE { @Override public String getColors() { return "蓝色"; } }, YELLOW { @Override public String getColors() { return "黄色"; } }; } public static void main(String[] args) { for (Color c : Color.values()) { System.out.println(c.getColors() + "、"); } } } interface InterfaceEnum { String getColors(); }
因为接口中会存在抽象方法,所以,枚举中的每个对象都必须实现此抽象方法。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------
相关文章推荐
- JAVA 枚举
- Java中使用枚举
- Java中如何由枚举常量的ordinal值获得枚举常量对象
- 简述java枚举类型
- java中的枚举
- java枚举
- 定义java的枚举变量
- Java中的枚举类型
- 9.Java中的集合、枚举、泛型【下】
- java新功能之一枚举
- 再谈在Java中使用枚举
- Java基础-枚举的两种基本模式
- 深入探讨Java枚举的实现
- Java中枚举详解(1)
- Java枚举,酷! (原文发表于2006-04-25 下午01:13:48)
- java类型安全枚举与反射机制相结合的应用 作者:封宇
- 关于Collection.sort和java的枚举
- Java中如何由枚举常量的ordinal值获得枚举常量对象
- Java枚举工具类ValuedEnum用法
- JavaAnnotation与枚举