2つの配列を比較できるようにしたいと思います(同じXMLの値を保持しますが、年齢が異なるため、変更が加えられているかどうかを確認できます)。2つの配列があります。1つには解析した古いXML行の属性と値が含まれ、もう1つには解析した同じ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から削除されました
2つの配列を比較して、そのような結果を表示するにはどうすればよいですか?基本的には変化や違いを見せてほしいです。
これが私が試したコードです:
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);
このコードは、私が望んでいたことを完全には実行しませんでした(前述のとおり)。