HashSet的实现
Set是由若干个无序且不重复的对象所组成。它既包含Array的运算功能,同时又兼有Hash的高速搜索功能。HashSet是基于HashMap实现的.
1import java.util.Collection;
2import java.util.HashMap;
3import java.util.Iterator;
4import java.util.Set;
5
6public class MySet<E> implements Set<E>{
7 private HashMap<E, Object> map;
8 private static final Object notUse=new Object();
9
10 public MySet() {
11 map = new HashMap<E,Object>();
12 }
13 @Override
14 public Iterator<E> iterator() {
15 return map.keySet().iterator();
16 }
17
18 @Override
19 public boolean add(E e) {
20 return map.put(e, notUse) == null;
21 }
22
23 @Override
24 public boolean addAll(Collection<? extends E> c) {
25 return false;
26 }
27
28 @Override
29 public void clear() {
30 map.clear();
31 }
32
33 @Override
34 public boolean contains(Object o) {
35 return map.containsKey(o);
36 }
37
38 @Override
39 public boolean containsAll(Collection<?> c) {
40 return false;
41 }
42
43 @Override
44 public boolean isEmpty() {
45 return map.isEmpty();
46 }
47
48 @Override
49 public boolean remove(Object o) {
50 return map.remove(o) == notUse;
51 }
52
53 @Override
54 public boolean removeAll(Collection<?> c) {
55 return false;
56 }
57
58 @Override
59 public boolean retainAll(Collection<?> c) {
60 return false;
61 }
62
63 @Override
64 public int size() {
65 return map.size();
66 }
67
68 @Override
69 public Object[] toArray() {
70
71 return null;
72 }
73
74 @Override
75 public <T> T[] toArray(T[] a) {
76 return null;
77 }
78}