1 20 package org.apache.mina.util; 21 22 import java.util.AbstractSet ; 23 import java.util.Collection ; 24 import java.util.IdentityHashMap ; 25 import java.util.Iterator ; 26 import java.util.Map ; 27 import java.util.Set ; 28 29 35 public class IdentityHashSet<E> extends AbstractSet <E> { 36 private final Map <E, Boolean > delegate = new IdentityHashMap <E, Boolean >(); 37 38 public IdentityHashSet() { 39 } 40 41 public IdentityHashSet(Collection <E> c) { 42 addAll(c); 43 } 44 45 @Override 46 public int size() { 47 return delegate.size(); 48 } 49 50 @Override 51 public boolean contains(Object o) { 52 return delegate.containsKey(o); 54 } 55 56 @Override 57 public Iterator <E> iterator() { 58 return delegate.keySet().iterator(); 59 } 60 61 @Override 62 public boolean add(E arg0) { 63 return delegate.put(arg0, Boolean.TRUE) == null; 64 } 65 66 @Override 67 public boolean remove(Object o) { 68 return delegate.remove(o) != null; 70 } 71 72 @Override 73 public void clear() { 74 delegate.clear(); 75 } 76 } 77 | Popular Tags |