org.apache.aries.blueprint.utils
Class DynamicCollection<E>
java.lang.Object
java.util.AbstractCollection<E>
org.apache.aries.blueprint.utils.DynamicCollection<E>
- All Implemented Interfaces:
- Iterable<E>, Collection<E>
public class DynamicCollection<E>
- extends AbstractCollection<E>
Collection that allows iterators to see addition or removals of elements while iterating.
This collection and its iterators are thread safe but all operations happen under a
synchronization lock, so the performance in heavy concurrency load is far from optimal.
If such a use is needed, a CopyOnWriteArrayList may be more suited.
- Version:
- $Rev: 896324 $, $Date: 2010-01-06 06:05:04 +0000 (Wed, 06 Jan 2010) $
lock
protected final Object lock
storage
protected final List<E> storage
iterators
protected final List<WeakReference<DynamicCollection.DynamicIterator>> iterators
DynamicCollection
public DynamicCollection()
iterator
public DynamicCollection.DynamicIterator iterator()
- Specified by:
iterator
in interface Iterable<E>
- Specified by:
iterator
in interface Collection<E>
- Specified by:
iterator
in class AbstractCollection<E>
iterator
public DynamicCollection.DynamicIterator iterator(int index)
createIterator
protected DynamicCollection.DynamicIterator createIterator(int index)
size
public int size()
- Specified by:
size
in interface Collection<E>
- Specified by:
size
in class AbstractCollection<E>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface Collection<E>
- Overrides:
isEmpty
in class AbstractCollection<E>
contains
public boolean contains(Object o)
- Specified by:
contains
in interface Collection<E>
- Overrides:
contains
in class AbstractCollection<E>
toArray
public Object[] toArray()
- Specified by:
toArray
in interface Collection<E>
- Overrides:
toArray
in class AbstractCollection<E>
toArray
public <T> T[] toArray(T[] a)
- Specified by:
toArray
in interface Collection<E>
- Overrides:
toArray
in class AbstractCollection<E>
containsAll
public boolean containsAll(Collection<?> c)
- Specified by:
containsAll
in interface Collection<E>
- Overrides:
containsAll
in class AbstractCollection<E>
add
public boolean add(E o)
- Specified by:
add
in interface Collection<E>
- Overrides:
add
in class AbstractCollection<E>
remove
public boolean remove(Object o)
- Specified by:
remove
in interface Collection<E>
- Overrides:
remove
in class AbstractCollection<E>
get
public E get(int index)
clear
public void clear()
- Specified by:
clear
in interface Collection<E>
- Overrides:
clear
in class AbstractCollection<E>
remove
public E remove(int index)
first
public E first()
last
public E last()
Copyright © 2009-2011 The Apache Software Foundation. All Rights Reserved.