9

Java の WeakReference と Collections に関するいくつかの質問:

  1. Java のさまざまなデータセット インターフェイス (コレクション、リスト、セット、キューなど) を WeakReference で透過的に実装するライブラリはありますか? WeakHashMap は HashMap インターフェイス用ですか?

  2. または、単純に通常のコレクションを作成してから、compareTo または Comparator などで何らかのトリックを使用して、コレクションの検索を正しく機能させる一般的な解決策はありますか?

私は基本的にこれが欲しい:

public interface WeakCollection<E> extends Collection<E> {}

しかし、インターフェイスの契約では、E への参照は弱く保存されます。get(int index)明らかに、そのオブジェクトがなくなった場合などに nullを返すことに問題はありませんが、contains(E e)関数やその他のアイテムが適切に機能することを望みます。

「ここで発明されていない」トラップを回避しようとしているだけであり、これを自分で実装した場合、可能な限り簡単な解決策になるようにしています。

4

1 に答える 1

6

JBoss にはWeakSetがあります。Java 6では、次のこともできます

Set<T> s = Collections.newSetFromMap(new WeakHashMap<T, Boolean>());

また、それが役立つ場合は、LGPL であるWeakArrayListを見つけました。

于 2009-06-22T14:10:34.217 に答える