私は2つのリストを持っています:
List x = [1, 2, 5, 7, 8];
List y = [1, 3, 4, 5];
次の計算された非対称の違いを取得しようとしています。
x - y (what's in x that's not in y) => 2 7 8
y - x (what's in y that's not in x) => 3 4
私はすでにこれとこれに関するいくつかのポインタをチェックしましたが、私は背中にいくつかの制約があります:
私が実装しようとしているのは、Java 1.4に固執していることを除いて、guavaのSets.differenceが提供するものとまったく同じです(実装をリストからセットに簡単に変更できます)
これらのメソッドはインプレースで機能するため、Collection.removeAll/retainAllを使用すると取引が中断されます。私がリストに保持しているオブジェクトは、実際にはHibernateにマップされている重いPOJOSです。
- この意味で、この計算はすでにそれらのPOJOSに実装されているため、ハッシュベースの実装で機能するものが必要です。
結論として、Java 1.4用のSetsユーティリティクラスのようなものはありますか?または、2つのコレクションの非対称差を計算できるものはありますか?