Hi,

I have a few thoughts regarding your WeakHashSet...

My first thought was to somehow integrate it with the
whole Transformer/Predicate collections we've been 
discussing in another thread.  So you'd have a Transformer
that converted an object into a WeakReference before 
storing it in the set.  However, you'd need *another* 
Transformer to convert those WeakReferences back into
their referents when taking the objects out of the set.
>From what I understand, the proposed Transformer collections
only transform when objects are added.  Furthermore it's
unclear whether a two-Transformer based implementation would
work in all the algorithms for weak references (you'd still
need to empty the ReferenceQueue on a regular basis...)

My second thought is, the two Set implementations in the JDK
are backed by Map implementations.  WeakHashSet could be 
implemented as a Set that's backed by a WeakHashMap.  I'm 
thinking of having a static wrapper method in CollectionUtils
that would provide a Set backed by *any* map:

  // Creates a Set backed by the given map.  Given
  // map must be empty.
  public static Set createSet(Map map);

  public static SortedSet createSortedSet(SortedMap map);

This way, a user could get a weak hash set by calling 
CollectionUtils.createSet(new java.util.WeakHashMap()).
Or, they could use soft references instead of weak 
references in their set by calling 
CollectionUtils.createSet(new
org.apache.commons.collections.SoftRefHashMap()).

This also limits the number of classes we'd have to develop
to provide the Predicate and Transformer collections...

What do you think?

-Paul

-----Original Message-----
From: Jeff Keyser [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 23, 2002 6:40 PM
To: 'Jakarta Commons Developers List'
Subject: [Collections][SUBMIT] WeakHashSet


Trying again...  Perhaps my wrapping the source code into a jar was
confusing.  This time I'm just attaching the source files.

> -----Original Message-----
> From: Jeff Keyser [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, April 13, 2002 8:10 PM
> To: Jakarta Commons Developers List (E-mail)
> Subject: [SUBMIT] WeakHashSet
>
>
> Attached is a jar containing the three source code files for
> the WeakHashSet
> I mentioned I would like to contribute.  It subclasses the
> Java 1.2 HashSet
> class, and works exactly the same except that the elements
> are held in the
> set with weak references.
>
> Thanks!
>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to