相信很多学习java知识的小伙伴都会发现,java中关于枚举的知识是很详细的,而且涉及的方面也是非常广泛的。今天就来为大家介绍一下java中关于枚举工具类的有关内容,一起来了解一下吧。
首先说一下java中enum工具类有哪些?
有EnumSet和EnumMap。
Java中提供了两个方便操作enum的工具类——EnumSet和EnumMap。
EnumSet是枚举类型的高性能Set实现。它要求放入它的枚举常量必须属于同一枚举类型。
EnumMap是专门为枚举类型量身定做的Map实现。虽然使用其它的Map实现(如HashMap)也能完成枚举类型实例到值得映射,但是使用EnumMap会更加高效:它只能接收同一枚举类型的实例作为键值,并且由于枚举类型实例的数量相对固定并且有限,所以EnumMap 使用数组来存放与枚举类型对应的值。这使得EnumMap的效率非常高。代码如下所示:
// EnumSet的使用 System.out.println("EnumSet展示"); EnumSet < ErrorCodeEn > errSet = EnumSet.allOf(ErrorCodeEn.class); for (ErrorCodeEn e: errSet) { System.out.println(e.name() + " : " + e.ordinal()); } // EnumMap的使用 System.out.println("EnumMap展示"); EnumMap < StateMachine.Signal, String > errMap = new EnumMap(StateMachine.Signal.class); errMap.put(StateMachine.Signal.RED, "红灯"); errMap.put(StateMachine.Signal.YELLOW, "黄灯"); errMap.put(StateMachine.Signal.GREEN, "绿灯"); for (Iterator < Map.Entry < StateMachine.Signal, String >> iter = errMap.entrySet() .iterator(); iter.hasNext();) { Map.Entry < StateMachine.Signal, String > entry = iter.next(); System.out.println(entry.getKey() .name() + " : " + entry.getValue()); }
需要注意的是,枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,枚举类型还提供了安全检查功能。枚举类型本质上还是以类的形式存在。
接下来介绍一下,使用枚举类型设置常量
以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static。代码如下所示:
public interface Constants { public static final int RED = 1; public static final int BLUE = 2; public static final int GREEN = 3; }
使用枚举定义常量的语法如下:代码如下所示:
public enum ColorEnum { RED , BLUE , GREEN }
命名规范:
final常量:使用大写字母命名,并且中间使用下划线进行连接。
enum枚举:使用大写字母命名,并且中间使用下划线进行连接。
示例:枚举类型的使用。代码如下所示:
public static void doit(ColorEnum c) { switch (c) { case RED: System.out.println("This is RED"); break; case BLUE: System.out.println("This is BLUE"); break; case GREEN: System.out.println("This is GREEN"); break; default: break; } } public static void main(String[] args) { doit(ColorEnum.RED); }
总体上来说,java中关于枚举的知识是非常多的,而且划分的也是非常详细的。可以看出设置常量操作还是比较简单的。想要了解更多java基础,敬请关注奇Q工具网。
推荐阅读: