public class ListOrderedSet extends AbstractSerializableSetDecorator implements java.util.Set
Set
to ensure that the order of addition
is retained and used by the iterator.
If an object is added to the set for a second time, it will remain in the original position in the iteration. The order can be observed from the set via the iterator or toArray methods.
The ListOrderedSet also has various useful direct methods. These include many
from List
, such as get(int)
, remove(int)
and indexOf(int)
. An unmodifiable List
view of
the set can be obtained via asList()
.
This class cannot implement the List
interface directly as
various interface methods (notably equals/hashCode) are incompatable with a set.
This class is Serializable from Commons Collections 3.1.
Constructor and Description |
---|
ListOrderedSet()
Constructs a new empty
ListOrderedSet using
a HashSet and an ArrayList internally. |
Modifier and Type | Method and Description |
---|---|
void |
add(int index,
java.lang.Object object) |
boolean |
add(java.lang.Object object) |
boolean |
addAll(java.util.Collection coll) |
boolean |
addAll(int index,
java.util.Collection coll) |
java.util.List |
asList()
Gets an unmodifiable view of the order of the Set.
|
void |
clear() |
static ListOrderedSet |
decorate(java.util.List list)
Factory method to create an ordered set using the supplied list to retain order.
|
static ListOrderedSet |
decorate(java.util.Set set)
Factory method to create an ordered set.
|
static ListOrderedSet |
decorate(java.util.Set set,
java.util.List list)
Factory method to create an ordered set specifying the list and set to use.
|
java.lang.Object |
get(int index) |
int |
indexOf(java.lang.Object object) |
java.util.Iterator |
iterator() |
java.lang.Object |
remove(int index) |
boolean |
remove(java.lang.Object object) |
boolean |
removeAll(java.util.Collection coll) |
boolean |
retainAll(java.util.Collection coll) |
java.lang.Object[] |
toArray() |
java.lang.Object[] |
toArray(java.lang.Object[] a) |
java.lang.String |
toString()
Uses the underlying List's toString so that order is achieved.
|
contains, containsAll, equals, hashCode, isEmpty, size
public ListOrderedSet()
ListOrderedSet
using
a HashSet
and an ArrayList
internally.public static ListOrderedSet decorate(java.util.Set set, java.util.List list)
The list and set must both be empty.
set
- the set to decorate, must be empty and not nulllist
- the list to decorate, must be empty and not nulljava.lang.IllegalArgumentException
- if set or list is nulljava.lang.IllegalArgumentException
- if either the set or list is not emptypublic static ListOrderedSet decorate(java.util.Set set)
An ArrayList
is used to retain order.
set
- the set to decorate, must not be nulljava.lang.IllegalArgumentException
- if set is nullpublic static ListOrderedSet decorate(java.util.List list)
A HashSet
is used for the set behaviour.
NOTE: If the list contains duplicates, the duplicates are removed, altering the specified list.
list
- the list to decorate, must not be nulljava.lang.IllegalArgumentException
- if list is nullpublic java.util.List asList()
public void clear()
clear
in interface java.util.Collection
clear
in interface java.util.Set
clear
in class AbstractCollectionDecorator
public java.util.Iterator iterator()
iterator
in interface java.lang.Iterable
iterator
in interface java.util.Collection
iterator
in interface java.util.Set
iterator
in class AbstractCollectionDecorator
public boolean add(java.lang.Object object)
add
in interface java.util.Collection
add
in interface java.util.Set
add
in class AbstractCollectionDecorator
public boolean addAll(java.util.Collection coll)
addAll
in interface java.util.Collection
addAll
in interface java.util.Set
addAll
in class AbstractCollectionDecorator
public boolean remove(java.lang.Object object)
remove
in interface java.util.Collection
remove
in interface java.util.Set
remove
in class AbstractCollectionDecorator
public boolean removeAll(java.util.Collection coll)
removeAll
in interface java.util.Collection
removeAll
in interface java.util.Set
removeAll
in class AbstractCollectionDecorator
public boolean retainAll(java.util.Collection coll)
retainAll
in interface java.util.Collection
retainAll
in interface java.util.Set
retainAll
in class AbstractCollectionDecorator
public java.lang.Object[] toArray()
toArray
in interface java.util.Collection
toArray
in interface java.util.Set
toArray
in class AbstractCollectionDecorator
public java.lang.Object[] toArray(java.lang.Object[] a)
toArray
in interface java.util.Collection
toArray
in interface java.util.Set
toArray
in class AbstractCollectionDecorator
public java.lang.Object get(int index)
public int indexOf(java.lang.Object object)
public void add(int index, java.lang.Object object)
public boolean addAll(int index, java.util.Collection coll)
public java.lang.Object remove(int index)
public java.lang.String toString()
toString
in class AbstractCollectionDecorator
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"