上次已经为大家介绍过java枚举类,实例代码分享的有关内容了。今天再来为大家介绍一些相关的内容,也就是java中EnumMap类,一起来看看吧。
EnumMap是专门为枚举类型量身定做的Map实现。虽然使用其他的Map(如HashMap)实现也能完成枚举类型实例到值的映射,但是使用EnumMap会更加高效。
HashMap只能接收同一枚举类型的实例作为键值,并且由于枚举类型实例的数量相对固定并且有限,所以EnumMap使用数组来存放与枚举类型对应的值,使得EnumMap的效率非常高。
下面是使用EnumMap的一个代码示例。枚举类型DataBaseType里存放了现在支持的所有数据库类型。针对不同的数据库,一些数据库相关的方法需要返回不一样的值,例如示例中getURL()方法。代码如下所示:
//定义数据库类型枚举 public enum DataBaseType { MYSQUORACLE , DB2 , SQLSERVER } //某类中定义的获取数据库URL的方法以及EnumMap的声明 private EnumMap < DataBaseType, String > urls = new EnumMap < DataBaseType, String > (DataBaseType.class); public DataBaseInfo() { urls.put(DataBaseType.DB2, "jdbc:db2://localhost:5000/sample"); urls.put(DataBaseType.MYSQL, "jdbc:mysql://localhost/mydb"); urls.put(DataBaseType.ORACLE, "jdbc:oracle:thin:@localhost:1521:sample"); urls.put(DataBaseType.SQLSERVER, "jdbc:microsoft:sqlserver://sql:1433;Database=mydb"); } //根据不同的数据库类型,返回对应的URL //@param type DataBaseType 枚举类新实例 //@return public String getURL(DataBaseType type) { return this.urls.get(type); }
在实际使用中,EnumMap对象urls往往是由外部负责整个应用初始化的代码来填充的。这里为了演示方便,类自己做了内容填充。
从本例中可以看出,使用EnumMap可以很方便地为枚举类型在不同的环境中绑定到不同的值上。本例子中getURL绑定到URL上,在其他的代码中可能又被绑定到数据库驱动上去。
以上就是关于java中EnumMap类的实例代码分享的主要内容了。如果你对java知识感兴趣,想要了解更多java经典例子,敬请关注奇Q工具网。
推荐阅读: