java enum判断_Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)
packagecom.miracle.luna.lambda;importjava.util.Arrays;/*** @Author Miracle Luna
* @Date 2019/6/9 23:40
* @Version 1.0*/
public enumAlarmGrade {
ATTENTION("attention", "提示"),
WARNING("warning","警告"),
SERIOUS("serious", "严重"),
FAULT("fault", "故障"),
UNKNOWN("unknown", "未知");privateString key;privateString name;/***@paramkey
*@paramname*/AlarmGrade(String key, String name) {this.key =key;this.name =name;
}/***@returnReturns the key.*/
publicString getKey() {returnkey;
}/***@returnReturns the name.*/
publicString getName() {returnname;
}/*** 根据Key获得枚举的Value
* 普通for循环遍历,比较判断
*
*@paramkey
*@return
*/
public staticAlarmGrade getEnumType(String key) {
AlarmGrade[] alarmGrades=AlarmGrade.values();for (int i = 0; i < alarmGrades.length; i++) {if(alarmGrades[i].getKey().equals(key)) {returnalarmGrades[i];
}
}returnAlarmGrade.UNKNOWN;
}/*** 根据Key获得枚举的Value
* 加强for循环遍历,比较判断
*
*@paramkey
*@return
*/
public staticAlarmGrade getEnumType1(String key) {
AlarmGrade[] alarmGrades=AlarmGrade.values();for(AlarmGrade alarmGrade : alarmGrades) {if(alarmGrade.getKey().equals(key)) {returnalarmGrade;
}
}returnAlarmGrade.UNKNOWN;
}/*** 根据Key获得枚举的Value
* Lambda表达式,比较判断(JDK 1.8)
*
*@paramkey
*@return
*/
public staticAlarmGrade getEnumType2(String key) {
AlarmGrade[] alarmGrades=AlarmGrade.values();
AlarmGrade result=Arrays.asList(alarmGrades).stream()
.filter(alarmGrade->alarmGrade.getKey().equals(key))
.findFirst().orElse(AlarmGrade.UNKNOWN);returnresult;
}/*** 根据Key获得枚举的Value
* Lambda表达式,比较判断(JDK 1.8)
*
*@paramkey
*@return
*/
public staticAlarmGrade getEnumType3(String key) {returnArrays.asList(AlarmGrade.values()).stream()
.filter(alarmGrade->alarmGrade.getKey().equals(key))
.findFirst().orElse(AlarmGrade.UNKNOWN);
}public static voidmain(String[] args) {
String grade= "attention";
System.out.println("第一种方式:普通for循环遍历,比较判断 \n" + grade + ": " +AlarmGrade.getEnumType(grade).getName());
System.out.println("\n第二种方式:加强for循环遍历,比较判断 \n" + grade + ": " +AlarmGrade.getEnumType1(grade).getName());
System.out.println("\n第三种方式:Lambda表达式,比较判断 \n" + grade + ": " +AlarmGrade.getEnumType2(grade).getName());
System.out.println("\n第四种方式:Lambda表达式,比较判断 \n" + grade + ": " +AlarmGrade.getEnumType3(grade).getName());
}
}
java enum判断_Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)相关推荐
- java task多线程_JAVA语言-多线程实现的四种方式
Java多线程实现的方式有四种 · 1.继承Thread类,重写run方法 · 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的tar ...
- java xml导出_java 导出xml文件的四种方式
public class CreateXML { //DOM方式创建XML文件 public void DOMcreateXML() { DocumentBuilderFactory factory ...
- java中Map遍历的四种方式
java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...
- PHP数组循环遍历的四种方式
[(重点)数组循环遍历的四种方式] 1.使用for循环遍历数组 conut($arr);用于统计数组元素的个数. for循环只能用于遍历,纯索引数组!!!! 如果存在关 ...
- Map集合遍历的四种方式理解和简单使用
Map集合遍历的四种方式理解和简单使用 ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据 ...
- java hashmap遍历顺序_Java中HashMap遍历的两种方式
第一种: Map map = HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...
- java实现权限_Java实现权限管理的两种方式
编辑特别推荐: 种方式:利用filter.xml文件和用户信息表配合使用来实现权限管理. 1.过滤器filter package cn.com.aaa.bbb.filter; import java. ...
- java对集合遍历的四种方式
目录 文章目录 目录 1.背景 2.添加集合 3.遍历集合 3.1 普通循环遍历 3.2 迭代器遍历 3.3 增强for遍历(foreach) 3.4 list.forEach 4.总结 1.背景 目 ...
- Java的基础方法Java的对象_java基础之 创建对象的几种方式
有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor ...
最新文章
- 移动通信网络频段大全,含5G、4G,各种公开频段汇总
- SSH实现分页查询(转)
- Winform中实现ZedGraph不显示y=0这条刻度线
- Qt 加载QML 文件的几种方式
- 04.内置analyzer和analyze-API使用
- Knockout.Js案例一Introduction
- pypdf2 存储pdf_PyPDF2:用于PDF文件操作的Python库
- 计算机如何建筑材料结合所学知识,《技术与设计2》第三、四单元检测试卷
- 设计模式Demo制作bug以及反思集锦
- java之Calendar类
- VB.Net实现Ftp上传的方法
- hpux下netbackup无法认到所有磁带机
- 产品原型设计:使用axure实现菜单下拉效果
- java实现 蓝桥杯 算法训练 操作格子
- 【转】微信订阅号的运营
- 在ALLEGRO中添加中文字体
- 看电视剧《天道》一点感想 + 法兰克福美景Opencv聚类分析
- JAVA开发运维(基于腾讯云的运维资源)
- 高通平台android开发总结 MSM平台上的AMSS
- html5 电子白板 直播,HTML5 canvas 做画板画图 可以做电子白板
热门文章
- vim、g++、gdb及makefile的学习
- 2016,成为更好的自己
- 路由异常的起源——如何影响最终用户?
- 什么是控制单元?—Vecloud微云
- Python---根据字符串导入包(importlib)
- Unity OBB分包(基础APK+OBB) 与apk签名
- freemarker的常用内建函数
- but no declaration can be found for element #39;aop:aspectj-autoproxy#39;.
- C#中Socket通信编程的异步实现
- windows下配置ssh(FreeSSHD + putty)