⇒ Index (Frames) |  ⇒ Index (No Frames) |  ⇒ Package |  ⇒ Package Tree |  ⇒ Full Tree 
org.apache.commons.collections.set

Class ListOrderedSet

java.lang.Object
|
+--org.apache.commons.collections.collection.AbstractCollectionDecorator
   |
   +--org.apache.commons.collections.set.AbstractSetDecorator
      |
      +--org.apache.commons.collections.set.ListOrderedSet

All Implemented Interfaces:
Collection, Set, Set


public class ListOrderedSet
extends AbstractSetDecorator
implements Set

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.

Since:
Commons Collections 3.0
Authors:
Stephen Colebourne
Henning P. Schmiedehausen

Field Summary

List

setOrder

Internal list to hold the sequence of objects

Constructor Summary

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.

Method Summary

boolean

add(Object object)

void

add(int index, 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(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()

boolean

remove(Object object)

Object

remove(int index)

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.

Field Details

setOrder

protected final List setOrder

Internal list to hold the sequence of objects

Constructor Details

ListOrderedSet

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:
- if set or list is null

ListOrderedSet

protected ListOrderedSet(Set set)

Constructor that wraps (not copies).

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

Method Details

add

public void add(int index, Object object)

Parameters:
index
object

add

public boolean add(Object object)

Parameters:
object

addAll

public boolean addAll(Collection coll)

Parameters:
coll

addAll

public boolean addAll(int index, Collection coll)

Parameters:
index
coll

asList

public List asList()

Gets an unmodifiable view of the order of the Set.

Returns:
an unmodifiable list view

clear

public void clear()


decorate

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.

Parameters:
list - the list to decorate, must not be null
Throws:
- if set is null

decorate

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:
- if set is null

get

public Object get(int index)

Parameters:
index

indexOf

public int indexOf(Object object)

Parameters:
object

iterator

public Iterator iterator()


remove

public Object remove(int index)

Parameters:
index

remove

public boolean remove(Object object)

Parameters:
object

removeAll

public boolean removeAll(Collection coll)

Parameters:
coll

retainAll

public boolean retainAll(Collection coll)

Parameters:
coll

toArray

public Object[] toArray()


toArray

public Object[] toArray(Object[] a)

Parameters:
a

toString

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.