Juicio transversal de enumeración Java Enum de cuatro maneras (incluido el filtrado de expresiones Lambda)


paquete com.miracle.luna.lambda;

import java.util.Arrays;

/ **

* @ Autor Milagro Luna

* @Fecha 2019/6/9 23:40

* @Version 1.0

* /

enumeración pública AlarmGrade {

    ATENCIÓN ("atención", "提示"),

    ADVERTENCIA ("advertencia", "警告"),

    GRAVE ("grave", "严重"),

    FALLO ("fallo", "故障"),

    DESCONOCIDO ("desconocido", "未知");

    clave de cadena privada;

    nombre de cadena privado;

    / **

    * @param key

    * @param name

    * /

    AlarmGrade (clave de cadena, nombre de cadena) {

        this.key = key;

        this.name = nombre;

    }

    / **

    * @return Devuelve la clave.

    * /

    public String getKey () {

        tecla de retorno;

    }

    / **

    * @return Devuelve el nombre.

    * /

    public String getName () {

        nombre de retorno;

    }

    / **

    * Obtenga el valor enumerado de acuerdo con la clave

    * Ordinario para el recorrido en bucle, juicio comparativo

    * *

    * @param key

    * @regreso

    * /

    public static AlarmGrade getEnumType (clave de cadena) {

        AlarmGrade [] alarmGrades = AlarmGrade.values ​​();

        for (int i = 0; i <alarmGrades.length; i ++) {

            if (alarmGrades [i] .getKey (). equals (key)) {

                alarma de retorno Grados [i];

            }

        }

        return AlarmGrade.UNKNOWN;

    }

    / **

    * Obtenga el valor enumerado de acuerdo con la clave

    * Mejorado para el recorrido transversal del bucle, juicio comparativo

    * *

    * @param key

    * @regreso

    * /

    público static AlarmGrade getEnumType1 (String key) {

        AlarmGrade [] alarmGrades = AlarmGrade.values ​​();

        for (AlarmGrade alarmGrade: alarmGrades) {

            if (alarmGrade.getKey (). equals (key)) {

                alarma de retorno

            }

        }

        return AlarmGrade.UNKNOWN;

    }

    / **

    * Obtenga el valor enumerado de acuerdo con la clave

    * Expresión lambda, juicio comparativo (JDK 1.8)

    * *

    * @param key

    * @regreso

    * /

    public static AlarmGrade getEnumType2 (String key) {

        AlarmGrade [] alarmGrades = AlarmGrade.values ​​();

        Resultado de AlarmGrade = Arrays.asList (alarmGrades) .stream ()

                .filter (alarmGrade -> alarmGrade.getKey (). equals (key))

                .findFirst (). orElse (AlarmGrade.UNKNOWN);

        resultado de retorno;

    }

    / **

    * Obtenga el valor enumerado de acuerdo con la clave

    * Expresión lambda, juicio comparativo (JDK 1.8)

    * *

    * @param key

    * @regreso

    * /

    public static AlarmGrade getEnumType3 (String key) {

        return Arrays.asList (AlarmGrade.values ​​()). stream ()

                .filter (alarmGrade -> alarmGrade.getKey (). equals (key))

                .findFirst (). orElse (AlarmGrade.UNKNOWN);

    }

    public static void main (String [] args) {

        Grado de cadena = "atención";

        System.out.println ("La primera forma: ordinaria para el recorrido del bucle, juicio de comparación \ n" + grado + ":" + AlarmGrade.getEnumType (grado) .getName ());

        System.out.println ("\ nSegunda forma: mejorar el recorrido del bucle, comparar el juicio \ n" + grade + ":" + AlarmGrade.getEnumType1 (grade) .getName ());

        System.out.println ("\ nTercera forma: expresión Lambda, juicio de comparación \ n" + grado + ":" + AlarmGrade.getEnumType2 (grado) .getName ());

        System.out.println ("\ nCuarta forma: expresión Lambda, juicio de comparación \ n" + grado + ":" + AlarmGrade.getEnumType3 (grado) .getName ());

    }

}

La primera forma: ordinaria para el recorrido en bucle, juicio comparativo

atención:

La segunda forma: mejorar el recorrido transversal del bucle, comparar el juicio

atención:

La tercera vía: expresión lambda, juicio comparativo

atención:

La cuarta forma: expresión lambda, juicio comparativo

atención:

PD:

Para resumir, consulte lo siguiente:

Juicio transversal de enumeración de enumeración de cuatro maneras (incluido el filtrado de expresiones Lambda)

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

Recorrido de matriz de matriz de cuatro maneras (incluido el recorrido de expresión Lambda)

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

Enumere el recorrido de la colección de cuatro maneras (incluido el recorrido de la expresión Lambda)

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

Cinco formas de atravesar la colección Map (incluida la expresión transversal de Lambda)

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

Supongo que te gusta

Origin www.cnblogs.com/zhuyeshen/p/12677636.html
Recomendado
Clasificación