Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Weak HashSet from objectweb jac

// Revised from objectweb jac import java.lang.Cloneable; import java.util.AbstractSet; import java.util.Collection; import java.util.Iterator; import java.util.Set; import java.util.WeakHashMap; public class WeakHashSet extends AbstractSet     implements Set {     private transient WeakHashMap map;     public WeakHashSet() {         map = new WeakHashMap();     }     public WeakHashSet(Collection c) {         map = new WeakHashMap(Math.max((int) (c.size()/.75f) + 1, 16));         addAll(c);     }     public WeakHashSet(int initialCapacity, float loadFactor) {         map = new WeakHashMap(initialCapacity, loadFactor);     }     public WeakHashSet(int initialCapacity) {         map = new WeakHashMap(initialCapacity);     }     public Iterator iterator() {         return map.keySet().iterator();     }     public int size() {         return map.size();     }     public boolean isEmpty() {         return map.isEmpty();     }     public boolean contains(Object o) {         return map.containsKey(o);     }     public boolean add(Object o) {         return map.put(o, Boolean.TRUE)==null;     }     public boolean remove(Object o) {         return map.remove(o)==Boolean.TRUE;     }     public void clear() {         map.clear();     } }