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_回文 Java
- 下一篇: java和php优缺点_php和java