我希望能够比较两个数组(它们将保存相同 XML 但不同年龄的值,因此我可以查看是否进行了任何更改)。我有两个数组,一个包含我已解析的旧 XML 行的属性和值,另一个包含已解析的同一 XML 行的属性和最新版本。
例子:
Array1:
rect x="220.00"
width="300.00"
id="rect_1"
y="180.00"
height="280.00"
Array2:
rect x="300.00"
width="400.00"
id="rect_1"
height="280.00"
info = "description"
etc etc
所以在这里,变化将是:
rect x
属性已从 220 (array1) 更改为 300 (array2 )- 该
width
属性已从 300 (array1) 更改为 400(array2) - Array2 获得了一个名为
info
y
已从 array2 中删除
我将如何比较两个数组并显示这样的结果?基本上我希望它显示变化和差异。
这是我试过的代码:
Collection<String> listOne = Arrays.asList(array1);
Collection<String> listTwo = Arrays.asList(array);
Collection<String> similar = new HashSet<String>( listOne );
Collection<String> different = new HashSet<String>();
different.addAll( listOne );
different.addAll( listTwo );
similar.retainAll( listTwo );
different.removeAll( similar );
resultsBuff.append("\nDifferences: \n"+ different + "\n\nChanges: \n" + similar);
这段代码并没有完全按照我的意愿去做(如前所述)。