为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中是否可以根据 Enum 中的另一个值将 Enum 的一个值多次添加

在 Java 中是否可以根据 Enum 中的另一个值将 Enum 的一个值多次添加

慕侠2389804 2021-12-10 16:27:15
public enum Fruits{APPLE(1, 1,"Apple"),ORANGE(2, 4, "Orange"),PEAR(3, 7, "Pear"); private int fruitId, amount; private String name;private Fruits(int fruitId, int amount, String name) {            this.fruitId= fruitId;            this.amount= amount;            this.name= name;        }}基本上我想知道是否有可能为每个 Enum 条目创建一个“fruitId”值的数组列表,将fruitId添加到与数量相等的列表中。例如,对于 ORANGE,它会将数字 2 加入列表 4 次。如果可能,如何做到这一点?
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您可以使用一个简单的嵌套 for 循环来完成此操作,该循环首先遍历Fruits枚举的值,然后遍历每个值的amount:


List<Integer> list = new ArrayList<>();


for (Fruits fruit : Fruits.values()) {

    for (int i = 0; i < fruit.getAmount(); i++) {

        list.add(fruit.getFruitId());

    }

}

这假设您已经为每个字段创建了有效的 getter 方法。


流方法如下所示:


Arrays.stream(Fruits.values())

      .flatMap(fruit -> Stream.generate(() -> fruit.getFruitId()).limit(fruit.getAmount()))

      .collect(Collectors.toList())


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信