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

これが私が持っているもので、うまく機能しています。それらはすべてデフォルトで false に設定されることを知っています。しかし、私のアプリケーションをしばらく使用すると、それらのいくつかが「true」に変更されます。(それは私のコードが行うべきことなので、これは問題ありません)。

リセットのようなアクションをシミュレートする「リセット」ボタンを作成しようとしています。すべての変数は、ウィンドウが最初に作成されたときの状態に復元されます (すべての図面が消えます - 新たに再起動するだけです)。

そして、これらすべての真のブール値を一気に偽に戻す必要があります。何か案は?

4

5 に答える 5

20

使用Arrays.fill:

Arrays.fill(used, false);
于 2012-05-08T04:09:27.777 に答える
3

Arrays.fillは、配列を埋める前に範囲チェックを使用します。

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;
}
于 2012-05-08T14:28:42.093 に答える
2

配列を再作成するだけで、デフォルトで false に初期化されます。

それはあなたができるリセットを実装するときです

used[] = new boolean[26];
于 2012-05-08T20:04:19.093 に答える
1

使用java.util.Arrays.fill():

Arrays.fill(used, false);
于 2012-05-08T04:10:00.803 に答える