Мы также можем использовать EnumSet вместо потока массивов
Используя EnumSet
class TestClass {
public static void main(String[] args) {
String value = "DARK_RED";
Optional<String> res = EnumSet.allOf(Severity.class)
.stream()
.filter(severity -> severity.s3.equals(value))
.map(Severity::getFirstString)
.findFirst();
if(res.isPresent()){
System.out.println(res.get().toString());
}
}
}
Используя Поток массивов
class TestClass {
public static void main(String[] args) {
String value = "DARK_RED";
Optional<String> res = Arrays.stream(Severity.values())
.filter(severity -> severity.s3.equals(value))
.map(Severity::getFirstString)
.findFirst();
if(res.isPresent()){
System.out.println(res.get().toString());
}
}
}
enum Severity {
HIGH("High level it is ", "RED", "DARK_RED"),
MEDIUM("Medium level it is ", "AMBER", "LIGHT_YELLOW"),
LOW("Low level it is ", "GREEN", "DARK_GREEN");
String s1;
String s2;
String s3;
Severity(String s1, String s2, String s3){
this.s1 = s1;
this.s2 = s2;
this.s3 = s3;
}
public String getFirstString(){
return this.s1;
}
}