Class SetUniqueList

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable, java.util.Collection, java.util.List

    @Deprecated(since="2021-04-30")
    public class SetUniqueList
    extends AbstractSerializableListDecorator
    Deprecated.
    Commons Collections 3 is in maintenance mode. Commons Collections 4 should be used instead.
    Decorates a List to ensure that no duplicates are present much like a Set.

    The List interface makes certain assumptions/requirements. This implementation breaks these in certain ways, but this is merely the result of rejecting duplicates. Each violation is explained in the method, but it should not affect you. Bear in mind that Sets require immutable objects to function correctly.

    The ListOrderedSet class provides an alternative approach, by wrapping an existing Set and retaining insertion order in the iterator.

    This class is Serializable from Commons Collections 3.1.

    Since:
    Commons Collections 3.0
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void add​(int index, java.lang.Object object)
      Deprecated.
      Adds an element to a specific index in the list if it is not already present.
      boolean add​(java.lang.Object object)
      Deprecated.
      Adds an element to the list if it is not already present.
      boolean addAll​(int index, java.util.Collection coll)
      Deprecated.
      Adds a collection of objects a specific index in the list avoiding duplicates.
      boolean addAll​(java.util.Collection coll)
      Deprecated.
      Adds an element to the end of the list if it is not already present.
      java.util.Set asSet()
      Deprecated.
      Gets an unmodifiable view as a Set.
      void clear()
      Deprecated.
       
      boolean contains​(java.lang.Object object)
      Deprecated.
       
      boolean containsAll​(java.util.Collection coll)
      Deprecated.
       
      static SetUniqueList decorate​(java.util.List list)
      Deprecated.
      Factory method to create a SetList using the supplied list to retain order.
      java.util.Iterator iterator()
      Deprecated.
       
      java.util.ListIterator listIterator()
      Deprecated.
       
      java.util.ListIterator listIterator​(int index)
      Deprecated.
       
      java.lang.Object remove​(int index)
      Deprecated.
       
      boolean remove​(java.lang.Object object)
      Deprecated.
       
      boolean removeAll​(java.util.Collection coll)
      Deprecated.
       
      boolean retainAll​(java.util.Collection coll)
      Deprecated.
       
      java.lang.Object set​(int index, java.lang.Object object)
      Deprecated.
      Sets the value at the specified index avoiding duplicates.
      java.util.List subList​(int fromIndex, int toIndex)
      Deprecated.
       
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        equals, hashCode, isEmpty, replaceAll, size, sort, spliterator, toArray, toArray
    • Method Detail

      • decorate

        public static SetUniqueList decorate​(java.util.List list)
        Deprecated.
        Factory method to create a SetList using the supplied list to retain order.

        If the list contains duplicates, these are removed (first indexed one kept). A HashSet is used for the set behaviour.

        Parameters:
        list - the list to decorate, must not be null
        Throws:
        java.lang.IllegalArgumentException - if list is null
      • asSet

        public java.util.Set asSet()
        Deprecated.
        Gets an unmodifiable view as a Set.
        Returns:
        an unmodifiable set view
      • add

        public boolean add​(java.lang.Object object)
        Deprecated.
        Adds an element to the list if it is not already present.

        (Violation) The List interface requires that this method returns true always. However this class may return false because of the Set behaviour.

        Specified by:
        add in interface java.util.Collection
        Specified by:
        add in interface java.util.List
        Overrides:
        add in class AbstractCollectionDecorator
        Parameters:
        object - the object to add
        Returns:
        true if object was added
      • add

        public void add​(int index,
                        java.lang.Object object)
        Deprecated.
        Adds an element to a specific index in the list if it is not already present.

        (Violation) The List interface makes the assumption that the element is always inserted. This may not happen with this implementation.

        Specified by:
        add in interface java.util.List
        Overrides:
        add in class AbstractListDecorator
        Parameters:
        index - the index to insert at
        object - the object to add
      • addAll

        public boolean addAll​(java.util.Collection coll)
        Deprecated.
        Adds an element to the end of the list if it is not already present.

        (Violation) The List interface makes the assumption that the element is always inserted. This may not happen with this implementation.

        Specified by:
        addAll in interface java.util.Collection
        Specified by:
        addAll in interface java.util.List
        Overrides:
        addAll in class AbstractCollectionDecorator
        Parameters:
        coll - the collection to add
      • addAll

        public boolean addAll​(int index,
                              java.util.Collection coll)
        Deprecated.
        Adds a collection of objects a specific index in the list avoiding duplicates.

        Only elements that are not already in this list will be added, and duplicates from the specified collection will be ignored.

        (Violation) The List interface makes the assumption that the elements are always inserted. This may not happen with this implementation.

        Specified by:
        addAll in interface java.util.List
        Overrides:
        addAll in class AbstractListDecorator
        Parameters:
        index - the index to insert at
        coll - the collection to add in iterator order
        Returns:
        true if this collection changed
      • set

        public java.lang.Object set​(int index,
                                    java.lang.Object object)
        Deprecated.
        Sets the value at the specified index avoiding duplicates.

        The object is set into the specified index. Afterwards, any previous duplicate is removed If the object is not already in the list then a normal set occurs. If it is present, then the old version is removed.

        Specified by:
        set in interface java.util.List
        Overrides:
        set in class AbstractListDecorator
        Parameters:
        index - the index to insert at
        object - the object to set
        Returns:
        the previous object
      • remove

        public boolean remove​(java.lang.Object object)
        Deprecated.
        Specified by:
        remove in interface java.util.Collection
        Specified by:
        remove in interface java.util.List
        Overrides:
        remove in class AbstractCollectionDecorator
      • remove

        public java.lang.Object remove​(int index)
        Deprecated.
        Specified by:
        remove in interface java.util.List
        Overrides:
        remove in class AbstractListDecorator
      • removeAll

        public boolean removeAll​(java.util.Collection coll)
        Deprecated.
        Specified by:
        removeAll in interface java.util.Collection
        Specified by:
        removeAll in interface java.util.List
        Overrides:
        removeAll in class AbstractCollectionDecorator
      • retainAll

        public boolean retainAll​(java.util.Collection coll)
        Deprecated.
        Specified by:
        retainAll in interface java.util.Collection
        Specified by:
        retainAll in interface java.util.List
        Overrides:
        retainAll in class AbstractCollectionDecorator
      • clear

        public void clear()
        Deprecated.
        Specified by:
        clear in interface java.util.Collection
        Specified by:
        clear in interface java.util.List
        Overrides:
        clear in class AbstractCollectionDecorator
      • contains

        public boolean contains​(java.lang.Object object)
        Deprecated.
        Specified by:
        contains in interface java.util.Collection
        Specified by:
        contains in interface java.util.List
        Overrides:
        contains in class AbstractCollectionDecorator
      • containsAll

        public boolean containsAll​(java.util.Collection coll)
        Deprecated.
        Specified by:
        containsAll in interface java.util.Collection
        Specified by:
        containsAll in interface java.util.List
        Overrides:
        containsAll in class AbstractCollectionDecorator
      • iterator

        public java.util.Iterator iterator()
        Deprecated.
        Specified by:
        iterator in interface java.util.Collection
        Specified by:
        iterator in interface java.lang.Iterable
        Specified by:
        iterator in interface java.util.List
        Overrides:
        iterator in class AbstractCollectionDecorator
      • listIterator

        public java.util.ListIterator listIterator()
        Deprecated.
        Specified by:
        listIterator in interface java.util.List
        Overrides:
        listIterator in class AbstractListDecorator
      • listIterator

        public java.util.ListIterator listIterator​(int index)
        Deprecated.
        Specified by:
        listIterator in interface java.util.List
        Overrides:
        listIterator in class AbstractListDecorator
      • subList

        public java.util.List subList​(int fromIndex,
                                      int toIndex)
        Deprecated.
        Specified by:
        subList in interface java.util.List
        Overrides:
        subList in class AbstractListDecorator