我想将布尔数组中的所有值设置为false,而不重新初始化它

时间:2012-05-08 04:07:00

标签: java arrays boolean

    public boolean used[] = new boolean[26];

这就是我所拥有的,而且效果很好。我知道默认情况下它们都会被设置为false。但是,由于我的应用程序使用了一段时间,其中一些更改为“true”。 (这很好,因为这是我的代码应该做的)。

我正在尝试创建一个“重置”按钮,它将模拟一个类似重置的动作。所有变量都恢复到最初创建窗口时的状态(所有绘图都消失了 - 只需重新启动)。

我需要所有那些真正的布尔人一下子回到假。有什么想法吗?

5 个答案:

答案 0 :(得分:18)

使用Arrays.fill

Arrays.fill(used, false);

答案 1 :(得分:3)

在填充数组之前,

Arrays.fill 使用 rangecheck

public static void fill(Object[] a, int fromIndex, int toIndex, Object val) {
        rangeCheck(a.length, fromIndex, toIndex);
        for (int i=fromIndex; i<toIndex; i++)
            a[i] = val;
    }

/**
     * Check that fromIndex and toIndex are in range, and throw an
     * appropriate exception if they aren't.
     */
    private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
        if (fromIndex > toIndex)
            throw new IllegalArgumentException("fromIndex(" + fromIndex +
                       ") > toIndex(" + toIndex+")");
        if (fromIndex < 0)
            throw new ArrayIndexOutOfBoundsException(fromIndex);
        if (toIndex > arrayLen)
            throw new ArrayIndexOutOfBoundsException(toIndex);
    }

如果你不需要rangeCheck,你可以使用 forloop 来填充你的布尔数组。

for(int i = 0; i < used.length; ++i){
    used[i] = false;
}

答案 2 :(得分:2)

您可以重新创建数组,默认情况下会将其初始化为false。

那就是当你实现重置时你可以做到

used[] = new boolean[26];

答案 3 :(得分:1)

使用java.util.Arrays.fill()

Arrays.fill(used, false);

答案 4 :(得分:0)

    boolean a[]= new boolean[nums.length];

    Arrays.fill(a, false);

//这将帮助您用false填充布尔数组。

//记住要-> import java.util.Arrays;