编辑:关闭,因为看起来下面的代码可以正常工作
我目前面临以下问题:
我有两个二维数组,其中第二个维度的大小总是为7(因此最大索引为6)
现在我需要比较这些数组
如果在任何索引处添加或删除了某个字段,我想打印出来。
例如:
数组1:
0|1|2|3
0 |1|2|5
1 |4|4|6
(...)
6 |6|2|8
数组2
0|1|2|3|4
0 |1|1|2|5
1 |4|4|4|6
(...)
6 |6|7|2|8
如您所见,我在第二个数组中添加了一列
现在我需要打印出这个列或将其添加到数组列表中。
删除或更改列时也必须如此。
我怎样才能做到这一点?
到目前为止我的代码:
static List<String[]> differences;
static List<String[]> checkForDifferences(String[][] tableOld,String[][] tableNew) {
differences = new ArrayList<String[]>();
if(!Arrays.deepEquals(tableNew,tableOld)) {
for(int hour = 0; hour < tableOld.length;hour++) {
try {
boolean removed = true;
for(int hour2 = 0;hour2 < tableNew.length;hour2++)
if(Arrays.equals(tableOld[hour],tableNew[hour2]))
removed = false;
if(removed)
differences.add(new String[]{"-",tableOld[hour][0], tableOld[hour][1], tableOld[hour][2], tableOld[hour][3], tableOld[hour][4], tableOld[hour][5], tableOld[hour][6]});
} catch (ArrayIndexOutOfBoundsException e){
e.printStackTrace();
break;
}
}
for (int hour = 0; hour < tableNew.length; hour++) {
try {
boolean added = true;
for (int hour2 = 0; hour2 < tableOld.length; hour2++)
if (Arrays.equals(tableNew[hour], tableOld[hour2]))
added = false;
if (added)
differences.add(new String[]{"+", tableNew[hour][0], tableNew[hour][1], tableNew[hour][2], tableNew[hour][3], tableNew[hour][4], tableNew[hour][5], tableNew[hour][6]});
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
break;
}
}
return differences;
} else {
return null;
}
}
答案 0 :(得分:0)
显然,我的代码有效。我只是错了。