Class OrderedMultiset<T>

java.lang.Object
org.javimmutable.collections.common.AbstractMultiset<T>
org.javimmutable.collections.inorder.OrderedMultiset<T>
All Implemented Interfaces:
Serializable, Iterable<T>, ICollection<T>, IMultiset<T>, InvariantCheckable, ISet<T>, IStreamable<T>, Mapped<T,T>, SplitableIterable<T>

@Immutable public class OrderedMultiset<T> extends AbstractMultiset<T> implements Serializable
IMultiset implementation built on top of an ordered map. During iteration, elements are returned in the same order they were inserted into the set. Performance is slower than hash or tree sets, but should be sufficient for most algorithms where insert order matters.
See Also:
  • Method Details

    • of

      public static <T> OrderedMultiset<T> of()
    • deleteAll

      @Nonnull public OrderedMultiset<T> deleteAll()
      Specified by:
      deleteAll in interface ICollection<T>
      Specified by:
      deleteAll in interface IMultiset<T>
      Specified by:
      deleteAll in interface ISet<T>
      Returns:
      an equivalent collection with no values
    • setCollector

      @Nonnull public java.util.stream.Collector<T,?,ISet<T>> setCollector()
      Description copied from interface: ISet
      Returns a Collector that creates a set of the same type as this containing all of the collected values inserted over whatever starting values this already contained.
      Specified by:
      setCollector in interface ISet<T>
    • multisetCollector

      @Nonnull public java.util.stream.Collector<T,?,IMultiset<T>> multisetCollector()
      Description copied from interface: IMultiset
      Returns a Collector that creates a multiset of the same type as this containing all of the collected values inserted over whatever starting values this already contained.
      Specified by:
      multisetCollector in interface IMultiset<T>
    • create

      protected OrderedMultiset<T> create(IMap<T,Integer> map, int occurrences)
      Description copied from class: AbstractMultiset
      Implemented by derived classes to create a new instance of the appropriate class.
      Specified by:
      create in class AbstractMultiset<T>
      Parameters:
      map - base map for new multiset
      occurrences - total occurrences in map
      Returns:
      new multiset built from map
    • emptyMutableMap

      protected Map<T,Integer> emptyMutableMap()
      Description copied from class: AbstractMultiset
      Implemented by derived classes to create a new empty mutable Map that operates in the same way as this multiset's underlying immutable Map.
      Specified by:
      emptyMutableMap in class AbstractMultiset<T>
      Returns:
      new empty Counter