/** * Construct a <tt>WeakSet</tt>. Any elements in the given set will be * wrapped in {@link WeakObject} references. * * @param set The <tt>Set</tt> which will be used for element storage. * * @throws NullArgumentException Set is <tt>null</tt>. */ public WeakSet(final Set set) { if (set == null) throw new NullArgumentException("set"); // reset any elements to weak objects if (set.size() != 0) { Object elements[] = set.toArray(); set.clear(); for (int i=0; i<elements.length; i++) { add(elements[i]); } } this.set = set; }