java两个数组比较,相同为1,不同为0;

例如有两个数组String a[2]={"0","1"}
String[2][4] b={{"第一个元素","第二个元素","第三个元素","第四个元素"},{"4","5","6","1"}}

当比较两个数组的时候,

  for(int x = 0;x<a.length;x++){
        for(int w = 0;w<b.length;w++){
            if(a[x].equals(b[x+1][w])){
                b[x+1][w]="1";
                break;
            }else{
                b[x+1][w]="0";
            }
        }

就是赋值不成功,一直是0。。。

请问哪里出错了?还是对数组的不理解?

图片说明

第一个循环里没给b赋值就直接进第二个循环判断b.length了

只有一个值0啊,x=0时,w=0,最后的值也是0,第二次x=1时,w=0,此时b[x+1][w]就是b[2][0](数组已经越界)完全看不懂你在干啥,有何目的有何意义。

b={{"第一个元素","第二个元素","第三个元素","第四个元素"},{"4","5","6","1"}}
你这里定义的,是一个二维数组,长度确实是String[2][4],所以b[0] b[1]的没问题的,但是b[2]就下标越界了
for(int x = 0;x<a.length;x++)这个循环,进入第二次的时候,if(a[x].equals(b[x+1][w])) 这里,就出现了b[2]

你的两个数组长度都为2,在a[x].equals(b[x+1][w])这里为true的时候就是为b[1]数组赋值,不是你说的第一个元素第二个元素里了、、、