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 表达式过滤)相关推荐

  1. java task多线程_JAVA语言-多线程实现的四种方式

    Java多线程实现的方式有四种 · 1.继承Thread类,重写run方法 · 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的tar ...

  2. java xml导出_java 导出xml文件的四种方式

    public class CreateXML { //DOM方式创建XML文件 public void DOMcreateXML() { DocumentBuilderFactory factory ...

  3. java中Map遍历的四种方式

    java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...

  4. PHP数组循环遍历的四种方式

    [(重点)数组循环遍历的四种方式]  1.使用for循环遍历数组      conut($arr);用于统计数组元素的个数.      for循环只能用于遍历,纯索引数组!!!!      如果存在关 ...

  5. Map集合遍历的四种方式理解和简单使用

    Map集合遍历的四种方式理解和简单使用 ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据 ...

  6. java hashmap遍历顺序_Java中HashMap遍历的两种方式

    第一种: Map map =  HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...

  7. java实现权限_Java实现权限管理的两种方式

    编辑特别推荐: 种方式:利用filter.xml文件和用户信息表配合使用来实现权限管理. 1.过滤器filter package cn.com.aaa.bbb.filter; import java. ...

  8. java对集合遍历的四种方式

    目录 文章目录 目录 1.背景 2.添加集合 3.遍历集合 3.1 普通循环遍历 3.2 迭代器遍历 3.3 增强for遍历(foreach) 3.4 list.forEach 4.总结 1.背景 目 ...

  9. Java的基础方法Java的对象_java基础之 创建对象的几种方式

    有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor ...

最新文章

  1. 移动通信网络频段大全,含5G、4G,各种公开频段汇总
  2. SSH实现分页查询(转)
  3. Winform中实现ZedGraph不显示y=0这条刻度线
  4. Qt 加载QML 文件的几种方式
  5. 04.内置analyzer和analyze-API使用
  6. Knockout.Js案例一Introduction
  7. pypdf2 存储pdf_PyPDF2:用于PDF文件操作的Python库
  8. 计算机如何建筑材料结合所学知识,《技术与设计2》第三、四单元检测试卷
  9. 设计模式Demo制作bug以及反思集锦
  10. java之Calendar类
  11. VB.Net实现Ftp上传的方法
  12. hpux下netbackup无法认到所有磁带机
  13. 产品原型设计:使用axure实现菜单下拉效果
  14. java实现 蓝桥杯 算法训练 操作格子
  15. 【转】微信订阅号的运营
  16. 在ALLEGRO中添加中文字体
  17. 看电视剧《天道》一点感想 + 法兰克福美景Opencv聚类分析
  18. JAVA开发运维(基于腾讯云的运维资源)
  19. 高通平台android开发总结 MSM平台上的AMSS
  20. html5 电子白板 直播,HTML5 canvas 做画板画图 可以做电子白板

热门文章

  1. vim、g++、gdb及makefile的学习
  2. 2016,成为更好的自己
  3. 路由异常的起源——如何影响最终用户?
  4. 什么是控制单元?—Vecloud微云
  5. Python---根据字符串导入包(importlib)
  6. Unity OBB分包(基础APK+OBB) 与apk签名
  7. freemarker的常用内建函数
  8. but no declaration can be found for element #39;aop:aspectj-autoproxy#39;.
  9. C#中Socket通信编程的异步实现
  10. windows下配置ssh(FreeSSHD + putty)