Я пытаюсь сравнить строки в 2D массиве. Например:Сравнение строк в массивах 2d java
arr1={{1, 0, 0, 0} , {0, 0, 0, 0} , {0, 1, 0, 0}}
arr2={{0, 0, 0, 0} , {0, 1, 0, 0} , {1, 0, 0, 0}}
arr3={{1, 0, 0, 0} , {0, 0, 0, 1} , {0, 1, 0, 0}}
arr1
и arr2
равны, но arr1
и arr3
не равны.
Это код дерева. У каждого узла может быть любое количество детей. Если у двух братьев и сестер одинаковый 2D-массив (как я определил в вопросе), удалите узел. nodeLabel
показывает, если ребенок активен. Любая помощь?
void removNode(Node subtree){
int count=0;
int [] arr1=new int [num2+1];
int [] arr2=new int [num2+1];
int [][] scharr1=new int [num1+1] [num2+1];
int [][] scharr2=new int [num1+1] [num2+1];
if(!subtree.nodeChildren.isEmpty()){
for(int l=0;l<subtree.nodeChildren.size();l++){
if(subtree.nodeChildren.get(l).nodeLabel==1){
for(int t=0;t<subtree.nodeChildren.size();t++){
scharr1=subtree.nodeChildren.get(l).scharr;
scharr2=subtree.nodeChildren.get(t).scharr;
if(l!=t){
for(int i=0;i<=num1;i++){
arr1=scharr1[i];
for(int k=0;k<=num1;k++){
arr2=scharr2[k];
if(Arrays.equals(arr1, arr2) && subtree.nodeChildren.get(t).nodeLabel==1){
count++;
Arrays.fill(scharr2[k], -1);
k=num1+1;
}
}
}
}
if(count==num1+1){
subtree.nodeChildren.get(t).nodeLabel=0;
}
}
}
count=0;
}
}
}
Где ваш код, чтобы помочь. – Satya
Почему arr1 и arr2 равны? –
похоже на http://stackoverflow.com/questions/21434258/comparing-two-rows-in-a-single-2d-array – Maddy