Enum枚举值获取及List对象


import java.util.LinkedList;
import java.util.List;
import java.util.Optional;

/**
 * 举报业务线
 */
public enum ActivityPosterTypeEnum {

    ZJY(1, "自驾游"),
    JCYL(2, "聚餐娱乐"),
    GYHD(3, "公益活动"),
    QSN(4, "青少年"),
    TYJJ(5, "体育竞技"),
    CYJQ(6, "车友接亲"),
    NHZNQ(7, "年会/周年庆");
    private Integer value;

    private String name;

    ActivityPosterTypeEnum(Integer value, String name) {
        this.value = value;
        this.name = name;
    }

    public Integer getValue() {
        return value;
    }

    public String getName() {
        return name;
    }

    public static Optional<ActivityPosterTypeEnum> valueOf(Integer value) {
        for (ActivityPosterTypeEnum posterTypeEnum : values()) {
            if (posterTypeEnum.getValue().equals(value)) {
                return Optional.of(posterTypeEnum);
            }
        }
        return Optional.empty();
    }

    public static List<PosterType> getPosterTypeList() {
        //获取枚举值转list集合
        //这个model是自定义的一个类  放了两个字段,一个枚举值  一个枚举名称
        List<PosterType> list = new LinkedList<>();
        for (ActivityPosterTypeEnum posterTypeEnum : values()) {
            PosterType posterType = new PosterType();
            posterType.setId(posterTypeEnum.getValue());
            posterType.setName(posterTypeEnum.getName());
            list.add(posterType);
        }
        return list;
    }

    /**
     * 对象
     */
    public static class PosterType {
        public int id;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String name;
    }

    public static void main(String[] args) {
        //转json数据输出
        System.out.println(Z.safeToJSON(getPosterTypeList()));
    }
}

输出结果:

 

因为是静态方法  直接用就可以了:

ActivityPosterTypeEnum.getPosterTypeList()

 

在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,可以使用它来将枚举转换为对应的整数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值