org.apache.commons.collections.list
Class SetUniqueList
- Collection, List, Serializable
public class SetUniqueList
Decorates a
List
to ensure that no duplicates are present
much like a
Set
.
The
List
interface makes certain assumptions/requirements.
This implementation breaks these in certain ways, but this is merely the
result of rejecting duplicates.
Each violation is explained in the method, but it should not affect you.
The
ListOrderedSet
class provides an alternative approach, by wrapping an existing Set and
retaining insertion order in the iterator.
This class is Serializable from Commons Collections 3.1.
$Revision: 1.8 $ $Date: 2004/06/03 22:02:13 $- Matthew Hawthorne
- Stephen Colebourne
protected Set | set - Internal Set to maintain uniqueness.
|
SetUniqueList(List list, Set set) - Constructor that wraps (not copies) the List and specifies the set to use.
|
boolean | add(Object object) - Adds an element to the list if it is not already present.
|
void | add(int index, Object object) - Adds an element to a specific index in the list if it is not already present.
|
boolean | addAll(Collection coll) - Adds an element to the end of the list if it is not already present.
|
boolean | addAll(int index, Collection coll) - Adds a collection of objects to the end of the list avoiding duplicates.
|
Set | asSet() - Gets an unmodifiable view as a Set.
|
void | clear()
|
boolean | contains(Object object)
|
boolean | containsAll(Collection coll)
|
static SetUniqueList | decorate(List list) - Factory method to create a SetList using the supplied list to retain order.
|
Iterator | iterator()
|
ListIterator | listIterator()
|
ListIterator | listIterator(int index)
|
boolean | remove(Object object)
|
Object | remove(int index)
|
boolean | removeAll(Collection coll)
|
boolean | retainAll(Collection coll)
|
Object | set(int index, Object object) - Sets the value at the specified index avoiding duplicates.
|
List | subList(int fromIndex, int toIndex)
|
add , addAll , get , getList , indexOf , lastIndexOf , listIterator , listIterator , remove , set , subList |
add , addAll , clear , contains , containsAll , equals , getCollection , hashCode , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toArray , toString |
set
protected final Set set
Internal Set to maintain uniqueness.
SetUniqueList
protected SetUniqueList(List list,
Set set)
Constructor that wraps (not copies) the List and specifies the set to use.
The set and list must both be correctly initialised to the same elements.
list
- the list to decorate, must not be nullset
- the set to decorate, must not be null
add
public boolean add(Object object)
Adds an element to the list if it is not already present.
(Violation)
The
List
interface requires that this method returns
true
always. However this class may return
false
because of the
Set
behaviour.
- add in interface AbstractCollectionDecorator
object
- the object to add
add
public void add(int index,
Object object)
Adds an element to a specific index in the list if it is not already present.
(Violation)
The
List
interface makes the assumption that the element is
always inserted. This may not happen with this implementation.
- add in interface AbstractListDecorator
index
- the index to insert atobject
- the object to add
addAll
public boolean addAll(Collection coll)
Adds an element to the end of the list if it is not already present.
(Violation)
The
List
interface makes the assumption that the element is
always inserted. This may not happen with this implementation.
- addAll in interface AbstractCollectionDecorator
coll
- the collection to add
addAll
public boolean addAll(int index,
Collection coll)
Adds a collection of objects to the end of the list avoiding duplicates.
Only elements that are not already in this list will be added, and
duplicates from the specified collection will be ignored.
(Violation)
The
List
interface makes the assumption that the elements
are always inserted. This may not happen with this implementation.
- addAll in interface AbstractListDecorator
index
- the index to insert atcoll
- the collection to add in iterator order
- true if this collection changed
asSet
public Set asSet()
Gets an unmodifiable view as a Set.
decorate
public static SetUniqueList decorate(List list)
Factory method to create a SetList using the supplied list to retain order.
If the list contains duplicates, these are removed (first indexed one kept).
A
HashSet
is used for the set behaviour.
list
- the list to decorate, must not be null
set
public Object set(int index,
Object object)
Sets the value at the specified index avoiding duplicates.
The object is set into the specified index.
Afterwards, any previous duplicate is removed
If the object is not already in the list then a normal set occurs.
If it is present, then the old version is removed and re-added at this index
- set in interface AbstractListDecorator
index
- the index to insert atobject
- the object to set
Copyright © 2001-2006 Apache Software Foundation. All Rights Reserved.