KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > shiftone > cache > util > WeakSet


1 package org.shiftone.cache.util;
2
3
4
5 import java.util.ArrayList JavaDoc;
6 import java.util.Iterator JavaDoc;
7 import java.util.List JavaDoc;
8 import java.util.Set JavaDoc;
9
10
11 /**
12  * @version $Revision: 1.3 $
13  * @author <a HREF="mailto:jeff@shiftone.org">Jeff Drost</a>
14  */

15 public class WeakSet
16 {
17
18     private static final Log LOG = new Log(WeakSet.class);
19     private WeakMap weakMap = new WeakMap();
20     private int count = 0;
21
22     public int size()
23     {
24         return weakMap.size();
25     }
26
27
28     public boolean isEmpty()
29     {
30         return weakMap.isEmpty();
31     }
32
33
34     public void add(Object JavaDoc obj)
35     {
36         weakMap.put(new Integer JavaDoc(count++), obj);
37     }
38
39
40     public void clear()
41     {
42         weakMap.clear();
43     }
44
45
46     public Iterator JavaDoc iterator()
47     {
48
49         List JavaDoc list = new ArrayList JavaDoc();
50         Set JavaDoc keys = weakMap.keySet();
51         Iterator JavaDoc iterator = keys.iterator();
52
53         while (iterator.hasNext())
54         {
55             Object JavaDoc key = iterator.next();
56             Object JavaDoc value = weakMap.get(key);
57
58             if (value != null)
59             {
60                 list.add(value);
61             }
62         }
63
64         return list.iterator();
65     }
66 }
67
Popular Tags