Java 我试图实现两个排序数组的联接,但是输出都是错误的,下面的代码中应该做什么修改?

Java 我试图实现两个排序数组的联接,但是输出都是错误的,下面的代码中应该做什么修改?,java,arrays,union,Java,Arrays,Union,我在R(X,Y,Z)和S(Y,W)的基础上尝试联合R和S。如果两者的Y属性相同,则输出联合,但输出错误。主要的问题是在比较部分,但我无法找出它 public int [][]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5,}}; public int [][]S={{1,2},{4,5},{4,6},{8,9},}; public int[][]M=new int[5][4]; int[][]Output=ne

我在R(X,Y,Z)和S(Y,W)的基础上尝试联合R和S。如果两者的Y属性相同,则输出联合,但输出错误。主要的问题是在比较部分,但我无法找出它

public int [][]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5,}};
        public int [][]S={{1,2},{4,5},{4,6},{8,9},};

public int[][]M=new int[5][4];
int[][]Output=new int[7][8];
int[][]Disk=new int[10][8];

public void sort(){
    int temp_R[][]=new int[7][3];
    int temp_S[][]=new int[4][2];
    for(int i=0;i<S.length;i++)
    {
        for(int j=i+1;j<S.length;j++)
        {if(S[i][1]>S[j][0])
        {for(int k=0;k<2;k++ )
        {temp_S[i][k]=S[i][k];
         S[i][k]=S[j][k];
         S[j][k]=temp_S[i][k];
        }}
        else
            continue;
        }
    }




    System.out.println("Sorted array S");
   for(int i=0;i<S.length;i++)
   {for(int j=0;j<2;j++)
   {if(j<1){System.out.print(S[i][j]);
             System.out.print(",");


   }
   else{System.out.println(S[i][j]);

   }
   }
}

   for(int i=0;i<R.length;i++)
    {
        for(int j=i+1;j<R.length;j++)
        {if(R[i][0]>R[j][0])
        {for(int k=0;k<3;k++ )
        {temp_R[i][k]=R[i][k];
         R[i][k]=R[j][k];
         R[j][k]=temp_R[i][k];
        }}
        else
            continue;
        }
    }

   System.out.println("Sorted array R");
   for(int i=0; i< R.length;i++)
   {for(int j =0;j<3;j++)
   {if(j<2){System.out.print(R[i][j]);
   System.out.print(",");
   }
   else{System.out.println(R[i][j]);
   }
}
}  
   // Moving S into memory

   int def_mem_Size = 0;
   for (int i =0; i<S.length; i++){
       for (int k = 0; k < 5 ; k++){
           if(S[i][0] == M[k][0] && S[i][1] == M[k][1] 
                       ){
           M[k][3] = M[k][3] + 1;
                   break;
               }
           if(k == def_mem_Size){
                for (int p =0 ; p<2 ;p++)
                    M[k][p] = S[i][p];
               def_mem_Size++;
               break;
           }
       }

   }

   System.out.println("Content of M");
   for(int i=0; i<  def_mem_Size;i++)
   {for(int j =0;j<3;j++)
   {if(j<2){System.out.print(M[i][j]);
   System.out.print(",");
   }
   else{System.out.println(M[i][j]);
   }
}
}

 int count=0;



 for(int i =0;i<R.length;i++)
{ int mh=0;
int location = -1;
    for(int k=0;k<def_mem_Size;k++){
    {if(R[i][1]==M[k][0])
        {mh=1;
        location=k;
        break;  
    }
    }
    }

   if(mh==1){
       for(int h=0;h<2;h++)

     Output[count][h]=M[location][h];
                       Output[count][2]=R[location][2];
                           count++;
    }
    }





for (int p =0; p< count; p++ ){
    for (int l =0 ; l<4;l++)
            System.out.print(Output[p][l]+" ");
    System.out.println();

}
    }











The Output is 
Sorted array S
1,2
4,6
4,5
8,9
Sorted array R
1,2,3
2,4,6
2,3,4
3,4,5
3,4,5
4,7,8
8,9,1
Content of M
1,2,0
4,6,0
4,5,0
8,9,0

4 6 6 0 
4 6 6 0 
4 6 6 0 
public int[]R={{1,2,3},{4,7,8},{2,4,6},{8,9,1},{2,3,4},{3,4,5},{3,4,5};
公共int[]S={{1,2},{4,5},{4,6},{8,9},};
公共整数[][]M=新整数[5][4];
int[][]输出=新int[7][8];
int[][]磁盘=新int[10][8];
公共无效排序(){
int temp_R[][]=新int[7][3];
int temp_S[][]=新int[4][2];

对于(inti=0;iSorry),但如果我将代码格式化为您的代码,我也无法理解。对于给定的R和S,联合应该是什么样子?