Java 是否有方法循环遍历对象列表,然后根据每个对象的枚举值返回值

Java 是否有方法循环遍历对象列表,然后根据每个对象的枚举值返回值,java,list,object,enums,return,Java,List,Object,Enums,Return,我是java新手,有一个名为listAnimal的对象列表,下面是一个示例: [Animal{name='Atlantic', type='Actinopterygii', scienName='sturio', country='Global', endangerment='Critical Endangerment', popTrend='Decreasing'}, Animal{name='eel', type='Actinopterygii', scienName='Anguilla a

我是java新手,有一个名为
listAnimal
的对象列表,下面是一个示例:

[Animal{name='Atlantic', type='Actinopterygii', scienName='sturio', country='Global', endangerment='Critical Endangerment', popTrend='Decreasing'}, Animal{name='eel', type='Actinopterygii', scienName='Anguilla anguilla', country='Europe', endangerment='Critical Endangerment', popTrend='Decreasing'},
我有一些我想使用的枚举类

public enum LevelOfEndangerment {
/**
 * an enum to give values to levels of endangerment
 */

EXTINCT(8), NEAR_EXTINCT(7), CRITICAL_ENDANGERMENT(6), ENDANGERED(5), SOMEWHAT_VULNERABLE(4), NEAR_VULNERABLE(3),
NON_CONCERN(2), DATA_DEFICIENT(1), NOT_EVALUATED(0);

private int value;

LevelOfVulnerability (int aValue) {
    this.value = aValue;
}

public int getValue () {
    return value;
}
我正在努力想办法循环查看
listAnimal
,检查动物对象详细信息中的濒危值,例如“严重濒危”,并使用枚举根据值返回值6


非常感谢

如果您有单个
动物
,那么您可以将
濒危
字符串转换为
枚举
,并获取值

String eng = animal.getEndargement();
LevelOfEndangerment engVal = LevelOfEndangerment.valueOf(eng.replace(" ","_").toUpperCase());
Integer value = engVal.getValue();
List<Integer> values = listAnimal.stream()
                                 .map(an-> LevelOfEndangerment.valueOf(an.getEndargement().replace(" ","_").toUpperCase())
                                 .map(LevelOfEndangerment::getValue)
                                 .collect(Collectors.toList());
如果您有
动物列表
,您可以流式传输并获取值

String eng = animal.getEndargement();
LevelOfEndangerment engVal = LevelOfEndangerment.valueOf(eng.replace(" ","_").toUpperCase());
Integer value = engVal.getValue();
List<Integer> values = listAnimal.stream()
                                 .map(an-> LevelOfEndangerment.valueOf(an.getEndargement().replace(" ","_").toUpperCase())
                                 .map(LevelOfEndangerment::getValue)
                                 .collect(Collectors.toList());
List values=listAnimal.stream()
.map(an->levelOfEnhanderment.valueOf(an.getEndTarget().replace(“,”).toUpperCase())
.map(LevelOfEnhanderment::getValue)
.collect(Collectors.toList());

如果您有单个
动物
,则可以将
濒危
字符串转换为
枚举
并获取值

String eng = animal.getEndargement();
LevelOfEndangerment engVal = LevelOfEndangerment.valueOf(eng.replace(" ","_").toUpperCase());
Integer value = engVal.getValue();
List<Integer> values = listAnimal.stream()
                                 .map(an-> LevelOfEndangerment.valueOf(an.getEndargement().replace(" ","_").toUpperCase())
                                 .map(LevelOfEndangerment::getValue)
                                 .collect(Collectors.toList());
如果您有
动物列表
,您可以流式传输并获取值

String eng = animal.getEndargement();
LevelOfEndangerment engVal = LevelOfEndangerment.valueOf(eng.replace(" ","_").toUpperCase());
Integer value = engVal.getValue();
List<Integer> values = listAnimal.stream()
                                 .map(an-> LevelOfEndangerment.valueOf(an.getEndargement().replace(" ","_").toUpperCase())
                                 .map(LevelOfEndangerment::getValue)
                                 .collect(Collectors.toList());
List values=listAnimal.stream()
.map(an->levelOfEnhanderment.valueOf(an.getEndTarget().replace(“,”).toUpperCase())
.map(LevelOfEnhanderment::getValue)
.collect(Collectors.toList());

Animal
类中,您是否有类似
levelofendagementgetendargement()的方法?是否有类似
levelofendagementgetendargement()的方法
在您的
Animal
类中?在第二个示例中,.GetImpression值来自何处?这是lambda表达式,请检查此docs@user14087442在第二个示例中,.GetImpression值来自何处?这是lambda表达式,请检查此docs@user14087442