以上程序的执行结果为:
RED用法七:使用枚举集合在 Java 语言中和枚举类相关的 , 还有两个枚举集合类 java.util.EnumSet 和 java.util.EnumMap , 使用它们可以实现更多的功能 。
NEW_RED
使用 EnumSet 可以保证元素不重复 , 并且能获取指定范围内的元素 , 示例代码如下:
public class EnumTest { public static void main(String[] args) { List<ColorEnum> list = new ArrayList<ColorEnum>(); list.add(ColorEnum.RED); list.add(ColorEnum.RED); // 重复元素 list.add(ColorEnum.YELLOW); list.add(ColorEnum.GREEN); // 去掉重复数据 EnumSet<ColorEnum> enumSet = EnumSet.copyOf(list); System.out.println("去重:" + enumSet); // 获取指定范围的枚举(获取所有的失败状态) EnumSet<ErrorCodeEnum> errorCodeEnums = EnumSet.range(ErrorCodeEnum.ERROR, ErrorCodeEnum.UNKNOWN_ERROR); System.out.println("所有失败状态:" + errorCodeEnums); }}enum ColorEnum { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLOW("黄色", 4); private String name; private int index; private ColorEnum(String name, int index) { this.name = name; this.index = index; }}enum ErrorCodeEnum { SUCCESS(1000, "success"), ERROR(2001, "parameter error"), SYS_ERROR(2002, "system error"), NAMESPACE_NOT_FOUND(2003, "namespace not found"), NODE_NOT_EXIST(3002, "node not exist"), NODE_ALREADY_EXIST(3003, "node already exist"), UNKNOWN_ERROR(9999, "unknown error"); private int code; private String msg; ErrorCodeEnum(int code, String msg) { this.code = code; this.msg = msg; } public int code() { return code; } public String msg() { return msg; }}
以上程序的执行结果为:去重:[RED, GREEN, YELLOW]numMap 与 HashMap 类似 , 不过它是一个专门为枚举设计的 Map 集合 , 相比 HashMap 来说它的性能更高 , 因为它内部放弃使用链表和红黑树的结构 , 采用数组作为数据存储的结构 。
所有失败状态:[ERROR, SYS_ERROR, NAMESPACE_NOT_FOUND, NODE_NOT_EXIST, NODE_ALREADY_EXIST, UNKNOWN_ERROR]
EnumMap 基本使用示例如下:
public class EnumTest { public static void main(String[] args) { EnumMap<ColorEnum, String> enumMap = new EnumMap<>(ColorEnum.class); enumMap.put(ColorEnum.RED, "红色"); enumMap.put(ColorEnum.GREEN, "绿色"); enumMap.put(ColorEnum.BLANK, "白色"); enumMap.put(ColorEnum.YELLOW, "黄色"); System.out.println(ColorEnum.RED + ":" + enumMap.get(ColorEnum.RED)); }}enum ColorEnum { RED, GREEN, BLANK, YELLOW;}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Java中读取File文件内容转为String类型
- 淘宝店铺分几种 淘宝店铺分为几种类型
- 在 JavaScript 中替换所有指定字符 3 种方法
- 搞懂 面向对象 的核心思想,JAVA中封装、包和访问权限的知识点
- 您应该了解的顶级JavaScript库
- javascript自学记录:递归
- 阿里的垃圾怎么回收?Java G1源码分析与调优手册
- JavaScript代码整洁之道
- 陈香铁观音的制作工序,安溪铁观音的三大类型
- 一文带你弄懂 Java 动态代理