Stream把list对象的一个字段转成对应的枚举值
时间: 2024-12-22 14:22:15 浏览: 14
在Java中,你可以使用Stream API将List对象的一个字段转换为对应的枚举值。假设你有一个枚举类型`Color`,并且有一个List对象`colors`,其中包含多个枚举值。你可以使用Stream API的`map()`方法将List中的每个元素映射为对应的枚举值。
以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
enum Color {
RED, GREEN, BLUE
}
public class Main {
public static void main(String[] args) {
List<Color> colors = Arrays.asList(Color.RED, Color.GREEN, Color.BLUE);
List<Integer> colorCodes = colors.stream()
.map(Color::ordinal) // 将枚举值转换为对应的整数值(ordinal值)
.collect(Collectors.toList());
// 输出结果:颜色代码列表
for (int code : colorCodes) {
System.out.println(code);
}
}
}
```
在上面的示例中,我们首先定义了一个名为`Color`的枚举类型,包含三个枚举值:`RED`、`GREEN`和`BLUE`。然后,我们创建了一个包含这三个枚举值的List对象`colors`。接下来,我们使用Stream API的`map()`方法将`colors`中的每个枚举值转换为对应的整数值(通过调用枚举类型的ordinal方法)。最后,我们将转换后的枚举值列表收集到一个新的List对象中,并输出结果。
运行上述代码将输出每个枚举值的整数值,例如:
```csharp
1
2
3
```
请注意,这里我们使用了ordinal方法来获取枚举值的整数值。这是因为每个枚举值在枚举类型中都有一个唯一的ordinal值,可以使用它来将枚举值转换为对应的整数值。
阅读全文