网站首页 > java教程 正文
枚举Enum单映射使用
做Java的各位仁兄姐妹都知道,Java通过HashMap,以及枚举提供了方便的K-V映射功能,例如
但是如果遇到多个键值映射,例如K-K-V的形式怎么办呢?可能有些人会说那还是用HashMap呗,对于需求的满足倒是可以,但是不够优雅直观,可读性不高!下面让我们一睹枚举的高级用法之多键值的映射风采。
枚举Enum多键值映射使用
譬如这个四合一智能门锁场景,可能其他微服务或第三方的键值映射是上面单映射那样的,但是由于历史原因或者是自身强迫症使能,总之就是对别人的key不爽,那么我们可以再转换一次,转成简单优雅的1,2,3..等等,此时枚举的多键值可以很友好的支持你的强迫症使能!废话少说,提码来见:
package com.falcon.design.enums;
/**开门类型枚举*/
public enum MoreEnums {
FACE(1000, "0","人脸"),
FINGER(1001,"1","指纹"),
CARD(1002, "2","刷卡"),
KEY(1003, "3","钥匙");
private Integer key;
private String value;
private String desc;
MoreEnums(Integer key, String value, String desc) {
this.key = key;
this.value = value;
this.desc = desc;
}
public static String getValue(Integer key){
for (MoreEnums enums : values()){
if(enums.getKey().intValue() == key.intValue()){
return enums.value;
}
}
return "";
}
public static String getDesc(Integer key){
for(MoreEnums enums : values()){
if(enums.getKey().intValue() == key.intValue()){
return enums.desc;
}
}
return "";
}
public static String getDesc(String value){
for (MoreEnums enums : values()){
if(enums.getValue().equals(value)){ return enums.desc; }
}
return "";
}
public Integer getKey() { return key; }
public void setKey(Integer key) { this.key = key;}
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
public String getDesc() { return desc; }
public void setDesc(String desc) { this.desc = desc; }
}
只要掌握了这个增强型循环的语法糖在枚举中的使用,那么对于key和value的数量以及获取方式也就变的随心所欲而不逾矩!
相关的代码已在gitee上进行了分享:git@gitee.com:fortunamajor/design.git
原创不易,感觉对自己有帮助的朋友不妨关注赞赏支持,老衲将不甚感激!
猜你喜欢
- 2024-09-25 Java枚举类型的应用(java 枚举类型)
- 2024-09-25 每个Java开发人员应该了解关于枚举的18点特性
- 2024-09-25 java基础之枚举,都有常量了,为啥还要用枚举?
- 2024-09-25 三十三、Java内部类与枚举(java内部类的使用场景)
- 2024-09-25 反射、枚举以及Lambda表达式(反射forname)
- 2024-09-25 尚学堂知识整理:java 枚举类型(java中的枚举是什么意思)
- 2024-09-25 实际工作中推荐使用java枚举类型,提高开发效率#编程
- 2024-09-25 java枚举enumeration(java枚举类使用场景)
- 2024-09-25 你所不知道的JAVA枚举(Enum)的使用
- 2024-09-25 深圳尚学堂Java培训:Java枚举的七种常见用法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)