在java集合中查找弱引用对象

在java集合中查找弱引用对象,java,collections,weak-references,Java,Collections,Weak References,关于Java的WeakReference和Collections的几个问题: 有没有一个库可以透明地使用WeakReference实现Java的各种数据集接口(如集合、列表、集合、队列等)?WeakHashMap是用于HashMap接口的吗 或者,常见的解决方案是简单地创建普通集合,然后使用compareTo或Comparator之类的技巧来正确搜索集合 我基本上希望这样: public interface WeakCollection<E> extends Collection&l

关于Java的WeakReference和Collections的几个问题:

  • 有没有一个库可以透明地使用WeakReference实现Java的各种数据集接口(如集合、列表、集合、队列等)?WeakHashMap是用于HashMap接口的吗

  • 或者,常见的解决方案是简单地创建普通集合,然后使用compareTo或Comparator之类的技巧来正确搜索集合

  • 我基本上希望这样:

    public interface WeakCollection<E> extends Collection<E> {}
    
    公共接口WeakCollection扩展集合{}
    
    但接口的约定是对E的引用存储得很弱。显然,当对象离开时,
    get(int-index)
    返回null时,我没有问题,但是我希望
    包含(ee)
    函数和其他类似项能够正常工作

    我只是想避免“这里没有发明”的陷阱,并确保如果我自己实现了这一点,这将是最简单的解决方案。在Java 6中

    Set s=Collections.newSetFromMap(newweakhashmap());
    

    我还发现了一个LGPL,如果有帮助的话。

    谷歌收藏可能?他们的地图生成器相当不错,我听说一个巧妙的技巧(仅在某些时候适用)是在referent对象本身中包含一个规范的WeakReference-只需要为每个目标创建一个引用,并且等于/==work。哦,很好,集合技巧很酷,绝对有用。
    Set<T> s = Collections.newSetFromMap(new WeakHashMap<T, Boolean>());