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.AbstractSerializableSetDecorator
      - - org.apache.commons.collections.set.ListOrderedSet

- All Implemented Interfaces:
    Serializable, Iterable, Collection, Set

      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: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
  Author:
    Stephen Colebourne, Henning P. Schmiedehausen
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected List` | `setOrder` Internal list to hold the sequence of objects

    - ### Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator

      `collection`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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(List list)` Factory method to create an ordered set using the supplied list to retain order.
    `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.
    `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.

    - ### Methods inherited from class org.apache.commons.collections.set.AbstractSetDecorator

      `getSet`

    - ### Methods inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator

      `contains, containsAll, equals, getCollection, hashCode, isEmpty, size`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Set

      `contains, containsAll, equals, hashCode, isEmpty, size`

- - ### 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

    - #### 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

    - #### asList

          public List asList()

      Gets an unmodifiable view of the order of the Set.
      Returns:
        an unmodifiable list view

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `Collection`
      Specified by:
        `clear` in interface `Set`
      Overrides:
        `clear` in class `AbstractCollectionDecorator`

    - #### iterator

          public Iterator iterator()

      Specified by:
        `iterator` in interface `Iterable`
      Specified by:
        `iterator` in interface `Collection`
      Specified by:
        `iterator` in interface `Set`
      Overrides:
        `iterator` in class `AbstractCollectionDecorator`

    - #### add

          public boolean add(Object object)

      Specified by:
        `add` in interface `Collection`
      Specified by:
        `add` in interface `Set`
      Overrides:
        `add` in class `AbstractCollectionDecorator`

    - #### addAll

          public boolean addAll(Collection coll)

      Specified by:
        `addAll` in interface `Collection`
      Specified by:
        `addAll` in interface `Set`
      Overrides:
        `addAll` in class `AbstractCollectionDecorator`

    - #### remove

          public boolean remove(Object object)

      Specified by:
        `remove` in interface `Collection`
      Specified by:
        `remove` in interface `Set`
      Overrides:
        `remove` in class `AbstractCollectionDecorator`

    - #### removeAll

          public boolean removeAll(Collection coll)

      Specified by:
        `removeAll` in interface `Collection`
      Specified by:
        `removeAll` in interface `Set`
      Overrides:
        `removeAll` in class `AbstractCollectionDecorator`

    - #### retainAll

          public boolean retainAll(Collection coll)

      Specified by:
        `retainAll` in interface `Collection`
      Specified by:
        `retainAll` in interface `Set`
      Overrides:
        `retainAll` in class `AbstractCollectionDecorator`

    - #### toArray

          public Object[] toArray()

      Specified by:
        `toArray` in interface `Collection`
      Specified by:
        `toArray` in interface `Set`
      Overrides:
        `toArray` in class `AbstractCollectionDecorator`

    - #### toArray

          public Object[] toArray(Object[] a)

      Specified by:
        `toArray` in interface `Collection`
      Specified by:
        `toArray` in interface `Set`
      Overrides:
        `toArray` in class `AbstractCollectionDecorator`

    - #### get

          public Object get(int index)

    - #### indexOf

          public int indexOf(Object object)

    - #### add

          public void add(int index,
                 Object object)

    - #### addAll

          public boolean addAll(int index,
                       Collection coll)

    - #### remove

          public Object remove(int index)

    - #### 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.
      Overrides:
        `toString` in class `AbstractCollectionDecorator`

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.