私はこのような構造を持っています:
public class Foo
{
public int A ;
public int B ;
public int C ;
}
A、B、C がすべて等しいコピーが 1 つだけになるように、これらを 1 つずつコレクションに追加する必要があります。次のように、別のクラスのオブジェクトへの参照も必要です。
public class Bar
{
public Foo A ;
public Foo B ;
public Foo C ;
}
一意性を確保するために機能するを使用してみTreeSet < Foo >
ましたが、TreeSet から参照を取得できないため (セット内にあるかどうかのブール値のみ)、その参照を に渡すことができませんBar
。TreeMap < Foo , Integer >
とともに を使用してみました。これは一意性を確保し、オブジェクトへの参照を取得できるように機能しますが、とArrayList < Foo >
を維持するために大量の時間とメモリを浪費します。ArrayList
Integer
「これFoo
がまだコレクションにない場合は追加します。それ以外の場合はFoo
、コレクションに存在するかどうかを確認するために作成したものではなく、コレクションに既にあるものを教えてください。」と言う方法が必要です。
(私は のようなことができると思いました。それは私がTreeMap < Foo , Foo >
やりたいことをしますが、それはそれほど多くはありませんが、それでも無駄に思えるので、期待してこの質問を続けます啓発。)
(そして、はい、Comparable
ツリーで一意性チェックを行うために実装しました。その部分は既に機能しています。)