Google Collection Library で見つけたMapの比較にはとても重宝している
http://blog.zaq.ne.jp/oboe2uran/article/352/
そこで、List の Diff 結果を求めるのはどうであろうと考えた。
準備として Google Collection Library で見つけた
com.google.common.collect.MapDifference.ValueDifference
を参考に、Diff 結果を1つ1つ表現するものを用意する。
単純で何も目新しいものもないものだが、このコンセプトが重要と
感じることが大切である
今日は準備したクラスの紹介である
/**
* List の Diff 結果を表現する為のクラス.
* Diff実行をするクラス Listy が実行結果としてインスタンスを生成し
* 結果としてCollectionにして返す
*/
public class ListDifference<E> implements Comparable<ListDifference<E>>{
private Long index;
private E left;
private E right;
/**
* コンストラクタ
* @param index List上の index
* @param left Diff結果indexが指す左側リストの要素
* @param right Diff結果indexが指す右側リストの要素
*/
public ListDifference(long index,E left,E right){
this.index = index;
this.left = left;
this.right = right;
}
public long getIndex(){
return this.index;
}
public E leftValue(){
return this.left;
}
public E rightValue(){
return this.right;
}
@Override
public int compareTo(ListDifference<E> o){
return this.index.compareTo(o.index);
}
}