填充布尔[] []最好的方法

时间:2017-11-11 01:43:06

标签: java boolean discrete-mathematics

我使用它代替BitSet进行练习。我想创建不同的数组,并为交叉,联合等创建自己的方法。 我也希望能够打印布尔数组,以便我知道发生了什么。谢谢你的帮助。

步骤 1.创建私有静态方法,用于填充具有不同值的nxm布尔数组。 2.创建新数组并调用方法fillArray(myArray,int row,int col)。 3.打印阵列。

        boolean[][] myArray= new boolean[][];
        fillArray(myArray);



    }

    public static boolean[][] fillArray(boolean[][] bArray, int row, int col) {
        bArray = new boolean[row][col];
        Random rand = new Random();

        for(int i=0; i<row;i++) {
            bArray[i][0] = rand.nextBoolean();
            for(int j=0; j<col;j++) {
                bArray[j][0] = rand.nextBoolean();
            }
        }
        return bArray;
    }

}

2 个答案:

答案 0 :(得分:0)

您必须为数组提供行和列的大小。尝试类似:

public static void main(String[] args) {
    int row = 10;
    int col = 10;
    boolean[][] myArray= new boolean[row][col];
    fillArray(myArray, row, col);

    for(boolean[] row1: myArray){
        printRow(row1);
    }

}

public static boolean[][] fillArray(boolean[][] bArray, int row, int col) {
    Random rand = new Random();

    for(int i=0; i<row;i++) {
        for(int j=0; j<col;j++) {
            bArray[i][j] = rand.nextBoolean();
        }
    }
    return bArray;
}

public static void printRow(boolean[] row) {
    for (boolean i : row) {
        System.out.print(i);
        System.out.print("\t");
    }
    System.out.println();
}

答案 1 :(得分:0)

我会像这样重写你的fill方法:

public static boolean[][] fillArray(int row, int col, Random rand) {
    boolean[][] bArray = new boolean[row][col];
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            bArray[i][j] = rand.nextBoolean();
        }
    }
    return bArray;
}

注意:

  1. 我已将Random实例作为参数传递,因为使用随机种子创建新的Random实例非常昂贵。 (提示:你需要从操作系统中获取随机种子。
  2. 我已删除 bArray参数,因为您实际上忽略了它。
  3. 我修复了嵌套循环......这简直就错了。
  4. 可选地

    public static boolean[][] fillArray(boolean[][] bArray, Random rand) {
        for (int i = 0; i < bArray.length; i++) {
            for (int j = 0; j < bArray[i].length; j++) {
                bArray[i][j] = rand.nextBoolean();
            }
        }
        return bArray;
    }
    

    这将填充您已创建并提供的整个阵列。