Java:将 TRUE/FALSE 的所有可能组合添加到列表中

标签 java loops boolean generator

我看过其他关于此问题的帖子,但它们与这个问题并不完全一样。

我有这个代码:

    public static List<Boosters.Builder> GetBoosters() {
    List<Boosters.Builder> boosters = new ArrayList<Boosters.Builder>();

    Boosters.Builder booster = new Boosters.Builder();

    booster.setLarge(Bool.TRUE).setMedium(Bool.TRUE).setSmall(Bool.TRUE);
    boosters.add(booster);

    booster.setLarge(Bool.FALSE).setMedium(Bool.TRUE).setSmall(Bool.FALSE);
    boosters.add(booster);

    booster.setLarge(Bool.TRUE).setMedium(Bool.FALSE).setSmall(Bool.TRUE);
    boosters.add(booster);

    booster.setLarge(Bool.TRUE).setMedium(Bool.TRUE).setSmall(Bool.FALSE);
    boosters.add(booster);

    // (etc, etc, etc)

    return boosters;
}

这是我在 Java 中所做的一些生成类型的一部分。但是 Bool.TRUE/Bool.FALSE 的工作方式有点像普通的 java boolean 值,所以你可以信赖它。

我正在尝试创建一个循环,为我提供 TRUE/FALSE 的所有可能组合:

booster.setLarge(Bool.TRUE).setMedium(Bool.TRUE).setSmall(Bool.TRUE);

我不知道如何在循环中很好地做到这一点。有人可以帮我吗?

最佳答案

使用 Bool#values() 迭代枚举的可能值:

for (Bool large : Bool.values())
   for (Bool medium : Bool.values())
        for (Bool small : Bool.values())
              boosters.add(new Boosters.Builder().setLarge(large).setMedium(medium).setSmall(small));

关于Java:将 TRUE/FALSE 的所有可能组合添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960649/

相关文章:

java - 防止 Cayenne 更新某些列值

java - 如何用循环解决图形

java - 如何调整 JavaFX 3D 子场景的大小?

java - 替换java问题中的字符串

java - 当给定起始日期时,如何在 Java 中动态创建日期字段?

ios - 想要在 iOS sdk 中反转 BOOL 值

c#:编写 v1 的更短方式! ? v2 : !v2

c - 副订单菜单没有弹出

c - 理解 c 中的 float 有问题。为什么它会进入无限循环?

c++ - 具有特定值重复次数的第 K 次排列