Java Enum列挙型トラバーサル判定4つの方法(ラムダ式フィルタリングを含む)


パッケージ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つの方法(ラムダ式トラバーサルを含む)

https://www.cnblogs.com/miracle-luna/p/10995132.html

おすすめ

転載: www.cnblogs.com/zhuyeshen/p/12677636.html