パッケージcom.miracle.luna.lambda;
import java.util.Arrays;
/ **
* @Author Miracle Luna
* @日付2019/6/9 23:40
* @バージョン1.0
* /
公開列挙型AlarmGrade {
ATTENTION( "注意"、 "提示")、
WARNING( "warning"、 "警告")、
SERIOUS( "serious"、 "严重")、
FAULT( "fault"、 "故障")、
UNKNOWN( "不明"、 "未知");
プライベート文字列キー。
プライベート文字列名。
/ **
* @paramキー
* @param name
* /
AlarmGrade(文字列キー、文字列名){
this.key = key;
this.name = name;
}
/ **
* @returnキーを返します。
* /
public String getKey(){
リターンキー;
}
/ **
* @return名前を返します。
* /
public String getName(){
名前を返す;
}
/ **
*キーに従って列挙値を取得します
*通常はループトラバーサル、比較判断
*
* @paramキー
* @return
* /
public static AlarmGrade getEnumType(String key){
AlarmGrade [] alarmGrades = AlarmGrade.values();
for(int i = 0; i <alarmGrades.length; i ++){
if(alarmGrades [i] .getKey()。equals(key)){
alarmGrades [i]を返します。
}
}
AlarmGrade.UNKNOWNを返します。
}
/ **
*キーに従って列挙値を取得します
*ループトラバーサル、比較判断の強化
*
* @paramキー
* @return
* /
public static AlarmGrade getEnumType1(String key){
AlarmGrade [] alarmGrades = AlarmGrade.values();
(AlarmGrade alarmGrade:alarmGrades)の{
if(alarmGrade.getKey()。equals(key)){
alarmGradeを返します。
}
}
AlarmGrade.UNKNOWNを返します。
}
/ **
*キーに従って列挙値を取得します
*ラムダ式、比較判断(JDK 1.8)
*
* @paramキー
* @return
* /
public static AlarmGrade getEnumType2(String key){
AlarmGrade [] alarmGrades = AlarmGrade.values();
AlarmGradeの結果= Arrays.asList(alarmGrades).stream()
.filter(alarmGrade-> alarmGrade.getKey()。equals(key))
.findFirst()。orElse(AlarmGrade.UNKNOWN);
結果を返す;
}
/ **
*キーに従って列挙値を取得します
*ラムダ式、比較判断(JDK 1.8)
*
* @paramキー
* @return
* /
public static AlarmGrade getEnumType3(String key){
戻り値Arrays.asList(AlarmGrade.values())。stream()
.filter(alarmGrade-> alarmGrade.getKey()。equals(key))
.findFirst()。orElse(AlarmGrade.UNKNOWN);
}
public static void main(String [] args){
文字列グレード= "注意";
System.out.println( "最初の方法:通常のforループトラバーサル、比較判定\ n" + grade + ":" + AlarmGrade.getEnumType(grade).getName());
System.out.println( "\ n2番目の方法:ループトラバーサルの強化、判断の比較\ n" + grade + ":" + AlarmGrade.getEnumType1(grade).getName());
System.out.println( "\ n3番目の方法:ラムダ式、比較判定\ n" +グレード+ ":" + AlarmGrade.getEnumType2(グレード).getName());
System.out.println( "\ n4番目の方法:ラムダ式、比較判定\ n" +グレード+ ":" + AlarmGrade.getEnumType3(グレード).getName());
}
}
最初の方法:通常のforループトラバーサル、比較判断
注意:
2番目の方法:forループトラバーサルを強化し、判断を比較する
注意:
3番目の方法:ラムダ式、比較判断
注意:
4番目の方法:ラムダ式、比較判断
注意:
PS:
要約すると、以下を参照してください。
列挙列挙トラバーサル判定4つの方法(ラムダ式フィルタリングを含む)
https://www.cnblogs.com/miracle-luna/p/10995539.html
4つの方法での配列の配列トラバーサル(ラムダ式のトラバーサルを含む)
https://www.cnblogs.com/miracle-luna/p/10995469.html
4つの方法でコレクショントラバーサルをリストする(ラムダ式トラバーサルを含む)
https://www.cnblogs.com/miracle-luna/p/10995400.html
Mapコレクションをトラバースする5つの方法(ラムダ式トラバーサルを含む)