public class ListOrderedSet<E> extends AbstractSerializableSetDecorator<E>
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 incompatible with a set.
This class is Serializable from Commons Collections 3.1.
| Modifier | Constructor and Description |
|---|---|
|
ListOrderedSet()
Constructs a new empty
ListOrderedSet using a
HashSet and an
ArrayList internally.
|
protected |
ListOrderedSet(Set
Constructor that wraps (not copies).
|
protected |
ListOrderedSet(Set
Constructor that wraps (not copies) the Set and specifies the list to use.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E object)
|
void |
add(int index, E object)
Inserts the specified element at the specified position if it is not yet contained in this ordered set (optional operation).
|
boolean |
addAll(Collection
|
boolean |
addAll(int index, Collection
Inserts all elements in the specified collection not yet contained in the ordered set at the specified position (optional operation).
|
List |
asList()
Gets an unmodifiable view of the order of the Set.
|
void |
clear()
|
E |
get(int index)
Returns the element at the specified position in this ordered set.
|
int |
indexOf(Object
Returns the index of the first occurrence of the specified element in ordered set.
|
OrderedIterator |
iterator()
|
static <E> ListOrderedSet |
listOrderedSet(List
Factory method to create an ordered set using the supplied list to retain order.
|
static <E> ListOrderedSet |
listOrderedSet(Set
Factory method to create an ordered set.
|
static <E> ListOrderedSet |
listOrderedSet(Set
Factory method to create an ordered set specifying the list and set to use.
|
E |
remove(int index)
Removes the element at the specified position from the ordered set.
|
boolean |
remove(Object
|
boolean |
removeAll(Collection
|
boolean |
retainAll(Collection
|
Object |
toArray()
|
<T> T[] |
toArray(T[] a)
|
String |
toString()
Uses the underlying List's toString so that order is achieved.
|
decorated, equals, hashCodecontains, containsAll, isEmpty, setCollection, sizeclone, finalize, getClass, notify, notifyAll, wait, wait, waitcontains, containsAll, isEmpty, size, spliteratorparallelStream, removeIf, streampublic ListOrderedSet()
ListOrderedSet using a
HashSet and an
ArrayList internally.
protected ListOrderedSet(Set<E> set)
set - the set to decorate, must not be null
IllegalArgumentException - if set is null
protected ListOrderedSet(Set<E> set, List <E> list)
The set and list must both be correctly initialised to the same elements.
set - the set to decorate, must not be null
list - the list to decorate, must not be null
NullPointerException - if set or list is null
public static <E> ListOrderedSet<E> listOrderedSet(Set <E> set, List <E> list)
The list and set must both be empty.
E - the element type
set - the set to decorate, must be empty and not null
list - the list to decorate, must be empty and not null
NullPointerException - if set or list is null
IllegalArgumentException - if either the set or list is not empty
public static <E> ListOrderedSet<E> listOrderedSet(Set <E> set)
An ArrayList is used to retain order.
E - the element type
set - the set to decorate, must not be null
NullPointerException - if set is null
public static <E> ListOrderedSet<E> listOrderedSet(List <E> list)
A HashSet is used for the set behaviour.
NOTE: If the list contains duplicates, the duplicates are removed, altering the specified list.
E - the element type
list - the list to decorate, must not be null
NullPointerException - if list is null
public List<E> asList()
public void clear()
public OrderedIterator<E> iterator()
public boolean add(E object)
public boolean addAll(Collection<? extends E> coll)
public boolean remove(Objectobject)
public boolean removeAll(Collection<?> coll)
public boolean retainAll(Collection<?> coll)
This implementation iterates over the elements of this set, checking each element in turn to see if it's contained in coll. If it's not contained, it's removed from this set. As a consequence, it is advised to use a collection type for coll that provides a fast (e.g. O(1)) implementation of Collection.
public Object[] toArray()
public <T> T[] toArray(T[] a)
public E get(int index)
index - the position of the element in the ordered
Set.
index
List.get(int)
public int indexOf(Objectobject)
object - the element to search for
-1 if this ordered set does not contain this object
List.indexOf(Object)
public void add(int index,
E object)
index - the index at which the element is to be inserted
object - the element to be inserted
List.add(int, Object)
public boolean addAll(int index,
Collection<? extends E> coll)
index - the position to insert the elements
coll - the collection containing the elements to be inserted
true if this ordered set changed as a result of the call
List.addAll(int, Collection)
public E remove(int index)
index - the index of the element to be removed
List.remove(int)
public StringtoString()
toString in class
AbstractCollectionDecorator<E>