36 |
|
* class Handler { void handle(); ... } |
37 |
|
* |
38 |
|
* class X { |
39 |
< |
* private final CopyOnWriteArraySet handlers = new CopyOnWriteArraySet(); |
39 |
> |
* private final CopyOnWriteArraySet<Handler> handlers = new CopyOnWriteArraySet<Handler>(); |
40 |
|
* public void addHandler(Handler h) { handlers.add(h); } |
41 |
|
* |
42 |
|
* private long internalState; |
46 |
|
* changeState(); |
47 |
|
* Iterator it = handlers.iterator(); |
48 |
|
* while (it.hasNext()) |
49 |
< |
* ((Handler)(it.next()).handle(); |
49 |
> |
* it.next().handle(); |
50 |
|
* } |
51 |
|
* } |
52 |
|
* </pre> |
53 |
|
* @see CopyOnWriteArrayList |
54 |
|
* @since 1.5 |
55 |
|
* @author Doug Lea |
56 |
+ |
* @param <E> the base class of all elements held in this collection |
57 |
|
*/ |
58 |
|
public class CopyOnWriteArraySet<E> extends AbstractSet<E> |
59 |
|
implements Cloneable, java.io.Serializable { |