Java中的随机布尔2d数组始终返回;假;

Java中的随机布尔2d数组始终返回;假;,java,arrays,boolean,Java,Arrays,Boolean,我只是想创建一个随机布尔2d数组,但它总是返回false…运算符“&&”有问题吗?我不明白 public static void main(String[] args){ boolean[][] arr = new boolean[5][5]; Random r = new Random(); boolean row = r.nextBoolean(); boolean col = r.nextBoolean(); for(int i=0 ; i<

我只是想创建一个随机布尔2d数组,但它总是返回false…运算符“&&”有问题吗?我不明白

public static void main(String[] args){

    boolean[][] arr = new boolean[5][5];
    Random r = new Random();
    boolean row = r.nextBoolean();
    boolean col = r.nextBoolean();

    for(int i=0 ; i<arr.length ; i++){

        for(int j=0;j<arr[i].length;j++){

        arr[i][j] = row && col;

        System.out.print(arr[i][j]+"\t");

    }

}
publicstaticvoidmain(字符串[]args){
布尔[][]arr=新布尔[5][5];
随机r=新随机();
布尔行=r.nextBoolean();
布尔列=r.nextBoolean();

对于(int i=0;i您只计算一次行和列,请尝试以下方法:

boolean[][] arr = new boolean[5][5];
Random r = new Random();
boolean row;
boolean col;

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        row = r.nextBoolean();
        col = r.nextBoolean();
        arr[i][j] = row && col;
        System.out.print(arr[i][j] + "\t");
    }
}
boolean[][]arr=新的boolean[5][5];
随机r=新随机();
布尔行;
布尔列;
对于(int i=0;i
如果只计算一次行和列,请尝试以下方法:

boolean[][] arr = new boolean[5][5];
Random r = new Random();
boolean row;
boolean col;

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        row = r.nextBoolean();
        col = r.nextBoolean();
        arr[i][j] = row && col;
        System.out.print(arr[i][j] + "\t");
    }
}
boolean[][]arr=新的boolean[5][5];
随机r=新随机();
布尔行;
布尔列;
对于(int i=0;i
我想您只需要为数组中的每个单元格创建一个新的随机布尔值,如下所示:

public static void main(String[] args){

    boolean[][] arr = new boolean[5][5];
    Random r = new Random();

    for(int i = 0; i < arr.length; i++){
        for(int j = 0; j < arr[i].length; j++){

            arr[i][j] = r.nextBoolean();

            System.out.print(arr[i][j]+"\t");
        }
    }   
}
publicstaticvoidmain(字符串[]args){
布尔[][]arr=新布尔[5][5];
随机r=新随机();
对于(int i=0;i
我想您只需要为数组中的每个单元格创建一个新的随机布尔值,如下所示:

public static void main(String[] args){

    boolean[][] arr = new boolean[5][5];
    Random r = new Random();

    for(int i = 0; i < arr.length; i++){
        for(int j = 0; j < arr[i].length; j++){

            arr[i][j] = r.nextBoolean();

            System.out.print(arr[i][j]+"\t");
        }
    }   
}
publicstaticvoidmain(字符串[]args){
布尔[][]arr=新布尔[5][5];
随机r=新随机();
对于(int i=0;i
在考虑了您可能想要什么之后,这似乎更合理: 每行为布尔值,每列为布尔值,如下所示:

int columns =5;
int rows =5;
boolean[][] arr = new boolean[rows][columns];
Random r = new Random();
boolean[] row = new boolean[rows];
boolean[] col = new boolean[columns];

for(int i=0; i<rows; i++){
    row[i] = r.nextBoolean();
}
for(int i=0; i<columns; i++){
    col[i] = r.nextBoolean();
}

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        arr[i][j] = row[i] && col[j];
        System.out.print(arr[i][j] + "\t");
    }
    System.out.println();
}
int列=5;
int行=5;
布尔[][]arr=新的布尔[行][列];
随机r=新随机();
布尔[]行=新的布尔[行];
布尔[]列=新的布尔[列];

对于(int i=0;i在考虑了您可能需要的内容后,这似乎更合理: 每行为布尔值,每列为布尔值,如下所示:

int columns =5;
int rows =5;
boolean[][] arr = new boolean[rows][columns];
Random r = new Random();
boolean[] row = new boolean[rows];
boolean[] col = new boolean[columns];

for(int i=0; i<rows; i++){
    row[i] = r.nextBoolean();
}
for(int i=0; i<columns; i++){
    col[i] = r.nextBoolean();
}

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        arr[i][j] = row[i] && col[j];
        System.out.print(arr[i][j] + "\t");
    }
    System.out.println();
}
int列=5;
int行=5;
布尔[][]arr=新的布尔[行][列];
随机r=新随机();
布尔[]行=新的布尔[行];
布尔[]列=新的布尔[列];
对于(inti=0;i
,这里是编译和工作的JAVA解决方案
/*不管什么包;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
公共静态void main(字符串[]args)引发java.lang.Exception
{
布尔[][]arr=新布尔[5][5];
int-cnt=0;
对于(int i=0;i
这里是编译好的、可以工作的JAVA解决方案
/*不管什么包;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
公共静态void main(字符串[]args)引发java.lang.Exception
{
布尔[][]arr=新布尔[5][5];
int-cnt=0;
对于(int i=0;i
我不确定把
分开,然后从中取一个
&
是否有任何意义。它所做的只是将
元素的数量减少大约两倍。@khelwood是的,两个,而不是四个!我想也许他以后想从中得到一些东西,为什么他还要有两个呢o随机数?啊,我想我现在知道了,他到底想要什么。但这应该是另一个答案。很难说OP想要做什么。我唯一的猜测是,他可能希望在每行和每列中都有相同的
boolean
s,例如
boolean[]row=new boolean[5];boolean[]col=new boolean[5];
将它们设置为随机值,然后使用
arr[i][j]=行[i]&列[j]
。这只是我的想法,因此是第二个答案。我不确定是否有必要将
分开,然后取一个
&
。它所做的只是将
元素的数量减少大约两倍。@khelwood对,两个,而不是四个!我想也许他想得到一些我想我现在知道了,他到底想要什么。但这应该是另一个答案。很难说OP想要做什么。我唯一的猜测是,他可能希望在每一行和每一列中都有相同的
boolean
s,例如
boolean[]row=new boolean[5];boolean[]col=new boolean[5];
将它们设置为随机值,然后使用
arr[i][j]=row[i]&&col[j]
。这正是我的想法,因此第二个答案很乐意帮忙!你能将我的答案标记为正确吗?很乐意帮忙!你能将我的答案标记为正确吗?