我的代码粘贴在下面。该程序可以在不同类型的二维数组上正常工作,如果它们相同,则返回“ true”,否则,返回false。但是,当两个数组在两个维度上都具有空元素时,会出现一个小错误:
int a[][] = {{},{}};
int b[][] = {{},{}};
此输入需要返回“ true”,因为数组仍然相同,但是我遇到了数组索引超出范围的错误。有什么办法可以使我的程序识别出这两个数组仍然相同?
public class ArrayCompare {
public static void main(String[] args){
int a[][] = {{},{}};
int b[][] = {{},{}};
boolean result = equals(a,b);
System.out.println(result);
}
public static boolean equals(int[][] a, int[][] b) {
boolean boo = true;
if (a != null && b != null) {
if (a.length != b.length || a[0].length != b[0].length || a[1].length != b[1].length)
boo = false;
else
for (int i = 0; i < b.length; i++) {
for(int j =0; j <b.length; j++) {
if (b[i][j] != a[i][j]) {
boo = false;
}
}
}
}else {
boo = false;
}
return boo;
}
}
答案 0 :(得分:2)
将此检查添加到<div id="container">
<table id="table1">
<tr>
<td>
<header>
<h2>TABLE 1</h2>
</header>
</td>
</tr>
</table>
<table id="table2">
<tr>
<td>
<header>
<h2>TABLE 2</h2>
</header>
</td>
</tr>
</table>
</div>
语句else
:
a[i].length > 0
PS
您的代码经过一些更正后可以正常工作。大概我给你个主意,如何改进它。那这个呢?
else {
for (int i = 0; i < b.length; i++) {
if (a[i].length > 0) { // add check for empty array
for (int j = 0; j < b.length; j++) {
//...
}
}
}
}
答案 1 :(得分:0)
您的代码中存在一个小逻辑缺陷。在嵌套循环中,应该遍历每个数组中的元素。
Calendar.current.dateComponents(components, from: startDate!, to: currentDate).day!