org.apache.commons.collections.set

Class ListOrderedSet

public class ListOrderedSet extends AbstractSerializableSetDecorator 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.

This class is Serializable from Commons Collections 3.1.

Since: Commons Collections 3.0

Version: $Revision: 155406 $ $Date: 2005-02-26 12:55:26 +0000 (Sat, 26 Feb 2005) $

Author: Stephen Colebourne Henning P. Schmiedehausen

Field Summary
protected ListsetOrder
Internal list to hold the sequence of objects
Constructor Summary
ListOrderedSet()
Constructs a new empty ListOrderedSet using a HashSet and an ArrayList internally.
protected ListOrderedSet(Set set)
Constructor that wraps (not copies).
protected ListOrderedSet(Set set, List list)
Constructor that wraps (not copies) the Set and specifies the list to use.
Method Summary
booleanadd(Object object)
voidadd(int index, Object object)
booleanaddAll(Collection coll)
booleanaddAll(int index, Collection coll)
ListasList()
Gets an unmodifiable view of the order of the Set.
voidclear()
static ListOrderedSetdecorate(Set set, List list)
Factory method to create an ordered set specifying the list and set to use.
static ListOrderedSetdecorate(Set set)
Factory method to create an ordered set.
static ListOrderedSetdecorate(List list)
Factory method to create an ordered set using the supplied list to retain order.
Objectget(int index)
intindexOf(Object object)
Iteratoriterator()
booleanremove(Object object)
Objectremove(int index)
booleanremoveAll(Collection coll)
booleanretainAll(Collection coll)
Object[]toArray()
Object[]toArray(Object[] a)
StringtoString()
Uses the underlying List's toString so that order is achieved.

Field Detail

setOrder

protected final List setOrder
Internal list to hold the sequence of objects

Constructor Detail

ListOrderedSet

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

Since: Commons Collections 3.1

ListOrderedSet

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

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

Method Detail

add

public boolean add(Object object)

add

public void add(int index, Object object)

addAll

public boolean addAll(Collection coll)

addAll

public boolean addAll(int index, Collection 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(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

Since: Commons Collections 3.1

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

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.

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

get

public Object get(int index)

indexOf

public int indexOf(Object object)

iterator

public Iterator iterator()

remove

public boolean remove(Object object)

remove

public Object remove(int index)

removeAll

public boolean removeAll(Collection coll)

retainAll

public boolean retainAll(Collection coll)

toArray

public Object[] toArray()

toArray

public Object[] toArray(Object[] 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.
Copyright © 2001-2008 Apache Software Foundation. All Rights Reserved.