Package org.apache.commons.collections4.multiset

# Class SynchronizedSortedMultiSet<E>

java.lang.Object
org.apache.commons.collections4.collection.SynchronizedCollection<E>
org.apache.commons.collections4.multiset.SynchronizedMultiSet<E>
org.apache.commons.collections4.multiset.SynchronizedSortedMultiSet<E>

Type Parameters:
  `E` - The type held in the multiset.

All Implemented Interfaces:
  `Serializable`, `Iterable<E>`, `Collection<E>`, `MultiSet<E>`, `SortedMultiSet<E>`

public class SynchronizedSortedMultiSet<E> extends SynchronizedMultiSet<E> implements SortedMultiSet<E>
Decorates another `SortedMultiSet` to synchronize its behavior for a multithreaded environment.

Methods are synchronized, then forwarded to the decorated multiset. Iterators must be separately synchronized around the loop.

Since:
  4.6.0
See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.commons.collections4.MultiSet

  `MultiSet.Entry<E>`

- ## Field Summary

  ### Fields inherited from class org.apache.commons.collections4.collection.SynchronizedCollection

  `lock`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `SynchronizedSortedMultiSet(SortedMultiSet<E> multiset)`
  Constructor that wraps (not copies).
  `protected`
  `SynchronizedSortedMultiSet(SortedMultiSet<E> multiset, Object lock)`
  Constructor that wraps (not copies).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Comparator<? super E>`
  `comparator()`
  Returns the comparator associated with this sorted multiset, or null if it uses its elements' natural ordering.
  `protected SortedMultiSet<E>`
  `decorated()`
  Gets the multiset being decorated.
  `E`
  `first()`
  Returns the first (lowest) member.
  `E`
  `last()`
  Returns the last (highest) member.
  `static <E> SynchronizedSortedMultiSet<E>`
  `synchronizedSortedMultiSet(SortedMultiSet<E> multiset)`
  Factory method to create a synchronized sorted multiset.

  ### Methods inherited from class org.apache.commons.collections4.multiset.SynchronizedMultiSet

  `add, entrySet, equals, getCount, hashCode, remove, setCount, synchronizedMultiSet, uniqueSet`

  ### Methods inherited from class org.apache.commons.collections4.collection.SynchronizedCollection

  `add, addAll, clear, contains, containsAll, forEach, isEmpty, iterator, remove, removeAll, removeIf, retainAll, size, synchronizedCollection, toArray, toArray, toString`

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

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

  ### Methods inherited from interface java.util.Collection

  `addAll, clear, contains, isEmpty, parallelStream, removeIf, spliterator, stream, toArray, toArray`

  ### Methods inherited from interface java.lang.Iterable

  `forEach`

  ### Methods inherited from interface org.apache.commons.collections4.MultiSet

  `add, add, containsAll, entrySet, equals, getCount, hashCode, iterator, remove, remove, removeAll, retainAll, setCount, size, uniqueSet`

- ## Constructor Details

  - ### SynchronizedSortedMultiSet

    protected SynchronizedSortedMultiSet(SortedMultiSet<E> multiset)
    Constructor that wraps (not copies).
    Parameters:
      `multiset` - The multiset to decorate, must not be null
    Throws:
      `NullPointerException` - if multiset is null

  - ### SynchronizedSortedMultiSet

    protected SynchronizedSortedMultiSet(SortedMultiSet<E> multiset, Object lock)
    Constructor that wraps (not copies).
    Parameters:
      `multiset` - The multiset to decorate, must not be null
      `lock` - The lock to use, must not be null
    Throws:
      `NullPointerException` - if multiset or lock is null

- ## Method Details

  - ### synchronizedSortedMultiSet

    public static <E> SynchronizedSortedMultiSet<E> synchronizedSortedMultiSet(SortedMultiSet<E> multiset)
    Factory method to create a synchronized sorted multiset.
    Type Parameters:
      `E` - The type of the elements in the multiset
    Parameters:
      `multiset` - The multiset to decorate, must not be null
    Returns:
      A new synchronized SortedMultiSet
    Throws:
      `NullPointerException` - if multiset is null

  - ### comparator

    public Comparator<? super E> comparator()
    Description copied from interface: `SortedMultiSet`
    Returns the comparator associated with this sorted multiset, or null if it uses its elements' natural ordering.
    Specified by:
      `comparator` in interface `SortedMultiSet<E>`
    Returns:
      The comparator in use, or null if natural ordering.

  - ### decorated

    protected SortedMultiSet<E> decorated()
    Gets the multiset being decorated.
    Overrides:
      `decorated` in class `SynchronizedMultiSet<E>`
    Returns:
      The decorated multiset

  - ### first

    public E first()
    Description copied from interface: `SortedMultiSet`
    Returns the first (lowest) member.
    Specified by:
      `first` in interface `SortedMultiSet<E>`
    Returns:
      The first element in the sorted multiset.

  - ### last

    public E last()
    Description copied from interface: `SortedMultiSet`
    Returns the last (highest) member.
    Specified by:
      `last` in interface `SortedMultiSet<E>`
    Returns:
      The last element in the sorted multiset.