如何比较不同大小(不同行和列)的二维数组?
我有两个不同的矩阵: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();
}
}
答案 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)
。