java中EnumMap类,实例代码分享

BSO 2020-11-02 15:38:27 java常见问答 4313

上次已经为大家介绍过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工具网。

推荐阅读:

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

java枚举使用实例,怎样使用枚举类型设置常量?

java枚举类型enum用法是怎样的?java枚举用法示例