changes
[IRC.git] / Robust / src / Analysis / Pointer / MySet.java
1 package Analysis.Pointer;
2 import java.util.*;
3
4 public class MySet<T> extends AbstractSet<T> {
5   HashMap<T,T> map;
6   public MySet() {
7     map=new HashMap<T,T>();
8   }
9
10   public MySet(T obj) {
11     map=new HashMap<T,T>();
12     add(obj);
13   }
14
15   public MySet(MySet base) {
16     map=new HashMap<T,T>();
17     addAll(base);
18   }
19
20   public int size() {
21     return map.size();
22   }
23
24   public void clear() {
25     map.clear();
26   }
27
28   public boolean remove(Object obj) {
29     return map.remove(obj)!=null; 
30   }
31   
32   public boolean add(T obj) {
33     return map.put(obj, obj)==null;
34   }
35
36   public boolean contains(Object obj) {
37     return map.containsKey(obj);
38   }
39
40   public T get(T obj) {
41     return map.get(obj);
42   }
43
44   public boolean isEmpty() {
45     return map.isEmpty();
46   }
47   
48   public Iterator<T> iterator() {
49     return map.keySet().iterator();
50   }
51
52   public Object clone() {
53     MySet<T> cl=new MySet<T>();
54     cl.map.putAll(this.map);
55     return cl;
56   }
57 }