关于枚举:深入浅出-Java-中枚举的实现原理
根本概述在 JDK1.5 之前,通过定义常量应用的都是:public static fianl。而枚举的设计,就是把相干的常量分组到一个枚举类型里,不便创立和治理。 比方咱们要定义一个色彩常量: public enum Colour { RED, YELLOW, BLUE, GREEN}这段代码通过底层编译后,理论创立了 4 个枚举对象: new Enum<EnumTest>("RED", 0);new Enum<EnumTest>("YELLOW", 1);new Enum<EnumTest>("BLUE", 2);new Enum<EnumTest>("GREEN", 3); 应用形式条件抉择enum 能通过 switch 办法进行简略条件判断 Colour color = Colour.RED;switch (color) { case RED: System.out.println("红色"); break; case YELLOW: System.out.println("黄色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; default: System.out.println(color); break;}循环遍历通过循环遍历 .values() 可能取到对象中的值 for (Colour e : Colour.values()) { System.out.println(e.toString());}汇合映射在咱们应用枚举类型作为汇合的类型或映射中的键的类型时,能够应用专门且高效的汇合和映射实现。如: java.util.EnumSet 、 java.util.EnumMap // EnumSet的应用EnumSet<Colour> colorSet = EnumSet.allOf(Colour.class);for (Colour color : colorSet) { System.out.println(color);}// EnumMap的应用EnumMap<Colour, String> colorMap = new EnumMap(Colour.class);colorMap.put(Colour.RED, "红色");colorMap.put(Colour.YELLOW, "黄色");colorMap.put(Colour.GREEN, "绿色");colorMap.put(Colour.BLUE, "蓝色");Set<Map.Entry<Colour, String>> colorEntries = colorMap.entrySet();for (Map.Entry<Colour, String> entry : colorEntries) { System.out.println(entry.getKey().name() + ":" + entry.getValue());}罕用办法通过 java.lang.Enum 类的源码,能够摸索下枚举罕用的一些办法和设计思维: ...