Package org.apache.lucene.search

# Class Multiset<T>

java.lang.Object
java.util.AbstractCollection<T>
org.apache.lucene.search.Multiset<T>

All Implemented Interfaces:
  `Iterable<T>`, `Collection<T>`

public final class Multiset<T> extends AbstractCollection<T>
A `Multiset` is a set that allows for duplicate elements. Two `Multiset`s are equal if they contain the same unique elements and if each unique element has as many occurrences in both multisets. Iteration order is not specified.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Multiset()`
  Create an empty `Multiset`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `add(T e)`
  `void`
  `clear()`
  `boolean`
  `contains(Object o)`
  `boolean`
  `equals(Object obj)`
  `int`
  `hashCode()`
  `Iterator<T>`
  `iterator()`
  `boolean`
  `remove(Object o)`
  `int`
  `size()`

  ### Methods inherited from class java.util.AbstractCollection

  `addAll, containsAll, isEmpty, removeAll, retainAll, 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

  `parallelStream, removeIf, spliterator, stream, toArray`

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

  `forEach`

- ## Constructor Details

  - ### Multiset

    public Multiset()
    Create an empty `Multiset`.

- ## Method Details

  - ### iterator

    public Iterator<T> iterator()
    Specified by:
      `iterator` in interface `Collection<T>`
    Specified by:
      `iterator` in interface `Iterable<T>`
    Specified by:
      `iterator` in class `AbstractCollection<T>`

  - ### size

    public int size()
    Specified by:
      `size` in interface `Collection<T>`
    Specified by:
      `size` in class `AbstractCollection<T>`

  - ### clear

    public void clear()
    Specified by:
      `clear` in interface `Collection<T>`
    Overrides:
      `clear` in class `AbstractCollection<T>`

  - ### add

    public boolean add(T e)
    Specified by:
      `add` in interface `Collection<T>`
    Overrides:
      `add` in class `AbstractCollection<T>`

  - ### remove

    public boolean remove(Object o)
    Specified by:
      `remove` in interface `Collection<T>`
    Overrides:
      `remove` in class `AbstractCollection<T>`

  - ### contains

    public boolean contains(Object o)
    Specified by:
      `contains` in interface `Collection<T>`
    Overrides:
      `contains` in class `AbstractCollection<T>`

  - ### equals

    public boolean equals(Object obj)
    Specified by:
      `equals` in interface `Collection<T>`
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Specified by:
      `hashCode` in interface `Collection<T>`
    Overrides:
      `hashCode` in class `Object`