public class

ListOrderedSet

extends AbstractSerializableSetDecorator
implements Set<E>
java.lang.Object
   ↳ org.apache.commons.collections.collection.AbstractCollectionDecorator
     ↳ org.apache.commons.collections.set.AbstractSetDecorator
       ↳ org.apache.commons.collections.set.AbstractSerializableSetDecorator
         ↳ org.apache.commons.collections.set.ListOrderedSet

Class Overview

Decorates another 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.

Summary

Fields
protected final List setOrder Internal list to hold the sequence of objects
[Expand]
Inherited Fields
From class org.apache.commons.collections.collection.AbstractCollectionDecorator
Public Constructors
ListOrderedSet()
Constructs a new empty ListOrderedSet using a HashSet and an ArrayList internally.
Protected Constructors
ListOrderedSet(Set set)
Constructor that wraps (not copies).
ListOrderedSet(Set set, List list)
Constructor that wraps (not copies) the Set and specifies the list to use.
Public Methods
void add(int index, Object object)
boolean add(Object object)
boolean addAll(Collection coll)
boolean addAll(int index, Collection coll)
List asList()
Gets an unmodifiable view of the order of the Set.
void clear()
static ListOrderedSet decorate(Set set)
Factory method to create an ordered set.
static ListOrderedSet decorate(Set set, List list)
Factory method to create an ordered set specifying the list and set to use.
static ListOrderedSet decorate(List list)
Factory method to create an ordered set using the supplied list to retain order.
Object get(int index)
int indexOf(Object object)
Iterator iterator()
Object remove(int index)
boolean remove(Object object)
boolean removeAll(Collection coll)
boolean retainAll(Collection coll)
Object[] toArray()
Object[] toArray(Object[] a)
String toString()
Uses the underlying List's toString so that order is achieved.
[Expand]
Inherited Methods
From class org.apache.commons.collections.set.AbstractSetDecorator
From class org.apache.commons.collections.collection.AbstractCollectionDecorator
From class java.lang.Object
From interface java.lang.Iterable
From interface java.util.Collection
From interface java.util.Set

Fields

protected final List setOrder

Internal list to hold the sequence of objects

Public Constructors

public ListOrderedSet ()

Constructs a new empty ListOrderedSet using a HashSet and an ArrayList internally.

Protected Constructors

protected ListOrderedSet (Set set)

Constructor that wraps (not copies).

Parameters
set the set to decorate, must not be null
Throws
IllegalArgumentException if set is null

protected ListOrderedSet (Set set, List list)

Constructor that wraps (not copies) the Set and specifies the list to use.

The set and list must both be correctly initialised to the same elements.

Parameters
set the set to decorate, must not be null
list the list to decorate, must not be null
Throws
IllegalArgumentException if set or list is null

Public Methods

public void add (int index, Object object)

public boolean add (Object object)

public boolean addAll (Collection coll)

public boolean addAll (int index, Collection coll)

public List asList ()

Gets an unmodifiable view of the order of the Set.

Returns
  • an unmodifiable list view

public void clear ()

public static ListOrderedSet decorate (Set set)

Factory method to create an ordered set.

An ArrayList is used to retain order.

Parameters
set the set to decorate, must not be null
Throws
IllegalArgumentException if set is null

public static ListOrderedSet decorate (Set set, List list)

Factory method to create an ordered set specifying the list and set to use.

The list and set must both be empty.

Parameters
set the set to decorate, must be empty and not null
list the list to decorate, must be empty and not null
Throws
IllegalArgumentException if set or list is null
IllegalArgumentException if either the set or list is not empty

public static ListOrderedSet decorate (List list)

Factory method to create an ordered set using the supplied list to retain order.

A HashSet is used for the set behaviour.

NOTE: If the list contains duplicates, the duplicates are removed, altering the specified list.

Parameters
list the list to decorate, must not be null
Throws
IllegalArgumentException if list is null

public Object get (int index)

public int indexOf (Object object)

public Iterator iterator ()

public Object remove (int index)

public boolean remove (Object object)

public boolean removeAll (Collection coll)

public boolean retainAll (Collection coll)

public Object[] toArray ()

public Object[] toArray (Object[] a)

public String toString ()

Uses the underlying List's toString so that order is achieved. This means that the decorated Set's toString is not used, so any custom toStrings will be ignored.