枚举查找优化

网上定义的枚举大多是遍历进行查找 不是很优雅,可以构建一个Map 进行查找 时间复杂度也降低很多了 代码如下

import java.util.HashMap;
import java.util.Map;

/**
 * 权限name和权限对应值枚举
 **/
public enum Permissions {
    /**
     * 查询
     */
    QUERY(1, "QUERY"),
    /**
     * 增加
     */
    ADD(1 << 1, "ADD"),
    /**
     * 修改
     */
    MODIFY(1 << 2, "MODIFY"),
    /**
     * 删除
     */
    DEL(1 << 3, "DEL"),
    ;
    private Integer value;
    private String description;

    public Integer getValue() {
        return value;
    }

    public void setValue(Integer value) {
        this.value = value;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    Permissions(Integer value, String description) {
        this.value = value;
        this.description = description;
    }

    private static Map<String, Permissions> permissionsMap = new HashMap<>();
    static {
        for (Permissions value : Permissions.values()) {
            permissionsMap.put(value.getDescription(), value);
        }
    }

    public Permissions find(String permissionName) {
        return permissionsMap.get(permissionName);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_25484769/article/details/124199200
今日推荐