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)