java 枚举 map_java枚举(enum)详解,EnumMap类

为了可以更好的支持枚举类型,java.util当中添加了2个新类,一个是EnumMap另外一个就是EnumSet,使用他们的话能够更加高效的操作枚举类型,那么下面的我们就来先讲一下EnumMap。

EnumMap类

EnumMap是专门为枚举类型量身定做的Map实现。

虽然说,使用其他的Map(例HashMap)实现也可以完成枚举类型实例到值的映射,可是使用EnumMap会更加的高效。

HashMap只可以接收同一枚举类型的实例作为键值,并且因为枚举类型实例的数量相对固定并且有限,所以的话EnumMap使用数组来存放与枚举类型对应的值,使得EnumMap的效率非常高。

示例:

下面是使用EnumMap的一个代码示例。

枚举类型DataBaseType里存放了现在支持的所有数据库类型。

针对不同的数据库,一些数据库相关的方法需要返回不一样的值,例如示例当中getURL()方法。// 定义数据库类型枚举

public enum DataBaseType

{

MYSQUORACLE

, DB2

, SQLSERVER

}

// 某类中定义的获取数据库URL的方法以及EnumMap的声明

private EnumMap  urls = new EnumMap  (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上,在其他的代码当中可能又被绑定到数据库驱动上去。

关于EnumMap类就给你介绍到这里了,假如你还想了解更多相关知识,可以继续关注奇Q工具网来了解哦,更多java基础知识和常见问题,可以为你分享解答呢。

推荐阅读:


版权声明:本文为weixin_35078004原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。