Java 自定义了一个枚举类 CountryPermitSpecialScopeEnums 且包含两个字段 text和value,我需要根据value批量查找text,请给出一个方法
时间: 2024-05-14 17:12:22 浏览: 64
可以使用Java 8的Stream API来实现根据value批量查找text的方法,具体代码如下:
```java
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
public class Test {
private enum CountryPermitSpecialScopeEnums {
USA("美国", "US"),
CHINA("中国", "CN"),
JAPAN("日本", "JP");
private String text;
private String value;
CountryPermitSpecialScopeEnums(String text, String value) {
this.text = text;
this.value = value;
}
public String getText() {
return text;
}
public String getValue() {
return value;
}
}
public static void main(String[] args) {
String[] values = {"US", "CN", "JP"};
Map<String, String> valueTextMap = Arrays.stream(CountryPermitSpecialScopeEnums.values())
.collect(Collectors.toMap(CountryPermitSpecialScopeEnums::getValue, CountryPermitSpecialScopeEnums::getText));
for (String value : values) {
System.out.println(value + "对应的text是:" + valueTextMap.get(value));
}
}
}
```
运行结果如下:
```
US对应的text是:美国
CN对应的text是:中国
JP对应的text是:日本
```
在代码中,首先使用Java枚举类型定义了一个CountryPermitSpecialScopeEnums枚举类,其中包含了两个字段text和value。然后使用Java 8的Stream API将枚举类转换成Map,其中value作为Map的Key,text作为Map的Value。最后,根据传入的value数组,使用Map的get方法查找对应的text值。
阅读全文