比较二维数组

时间:2011-12-19 16:57:04

标签: java multidimensional-array compare

如何比较不同大小(不同行和列)的二维数组?

我有两个不同的矩阵:kuliahprior[][]hasil1[][]

我想查看kuliahprior中是否有hasil1元素,它们的大小不同。 我在cekKondisi()方法中进行检查。然后通过cekpriorfinal()的已发送元素在hasil1[i][j]方法中调用它。这是我的代码。

但是他们仍然挂着..不是错误只是因为未知而感到抱歉(对不起我的英语,谢谢你)

    public String cekKondisi(int kdbuka){
        String status = " ";
        String kd_dosen; String kdbukax[] = new String[MAX]; 
        for (int i=0; i<dosenprior.length;i++){    
             kd_dosen=dosenprior[i];
             kdbukax=peta.getKodeBuka1(kd_dosen,tahunakademik);
             for (int k=0;k<kdbukax.length;k++){
                if (kdbuka==Integer.parseInt(kuliahprior[i][k]))
                   status = slotprior[i];      
            }
        }    
        return status;
    }


    public void cekpriorfinal(){
        String status [][]=new String[15][15];
        for (int i=0;i<15;i++){
            for(int j=0;j<15;j++){
               status [i][j] = cekKondisi(hasil1[i][j]);     
            }
        }   
        for (int i=0;i<15;i++){
            for (int j=0;j<15;j++){
                if (status[i][j]==" ")
                    status[i][j]="ok";
            }
        }
        for (int i=0;i<15;i++){
             for (int j=0;j<15;j++){
                System.out.print (status[i][j]+" "); 
             }
             System.out.println();    
         }
   }

1 个答案:

答案 0 :(得分:0)

我无法发现导致无限循环的任何内容,因此我建议检查此行是否导致挂起:

kdbukax = peta.getKodeBuka1(kd_dosen,tahunakademik);

确保你没有耐心,但仍然在研究结果。

您可能会尝试使用调试器,并在您认为它挂起的随机点暂停应用程序&#34;挂起&#34;。您将看到它当前在哪一行。尝试在那里或那个环境中解决问题。

另外,请更改此

String kdbukax[] = new String[MAX]; 

到此:

String kdbukax[] = null;

无需创建数组,因为您在此处重新分配变量:

kdbukax=peta.getKodeBuka1(kd_dosen,tahunakademik);

如果MAX非常大,则可能需要一些时间来分配该大小的数组。在堆上创建数组具有这种复杂性:O(n)