Interface MultiSet<E>

Type Parameters:
E - il tipo degli elementi del multiset.
All Superinterfaces:
Iterable<E>
All Known Implementing Classes:
AbstractMultiSet, HashMapMultiSet, ListMultiSet

interface MultiSet<E> extends Iterable<E>
Interfaccia che descrive il contratto di un multiset.

Una breve definizione e discussione sulle proprietà dei multiset si trova ad esempio su Wikipedia.

I metodi che hanno per argomento un elemento sono:

  • add(E e), remove(Object) e contains(Object), questi sono tipici di collezioni come ad esempio Set per cui è bene che ne imitino la semantica (con particolare riguardo alle eccezioni);
  • multiplicity(Object) che, pur non comune ad altre collezioni, è ragionevole ne segua le convenzioni per uniformità con i precedenti.

    Dato che assumeremo che un multiset non possa contenere riferimenti null, l'unico metodo tra i precedenti che solleverà eccezioni add(E e), tale metodo potrebbe sollevare anche l'eccezione ClassCastException. Gli altri metodi accetteranno senza sollevare eccezioni sia riferimenti null che elementi non presenti nell'insieme.

    Le implementazioni di questa classe sono iterabili, l'iteratore Iterable.iterator() deve restituire gli elementi del supporto del multiset (ossia gli elementi del multiset senza ripetizioni).

  • Method Summary

    Modifier and Type
    Method
    Description
    int
    add(E e)
    Aggiunge un elemento al multiset.
    default boolean
    restituisce true se il multiset contiene l'elemento specificato.
    intersection(MultiSet<? extends E> o)
    Restituisce un nuovo multiset corrispondente all'intersezione tra questo e l'argomento.
    int
    Restituisce la molteplicità dell'elemento nel multiset.
    int
    Rimuove l'elemento (se presente) dal multiset.
    default int
    Restituisce la cardinalità del multiset.
    union(MultiSet<? extends E> o)
    Restituisce un nuovo multiset corrispondente all'unione tra questo e l'argomento.

    Methods inherited from interface Iterable

    forEach, iterator, spliterator
  • Method Details

    • add

      Aggiunge un elemento al multiset.
      Parameters:
      e - l'elemento da aggiungere.
      Returns:
      la molteplicità dell'elemento dopo l'inserimento.
      Throws:
      NullPointerException - se l'elemento è null.
      ClassCastException - se l'elemento è di tipo tale da non poter essere aggiunto.
    • remove

      int remove(Object o)
      Rimuove l'elemento (se presente) dal multiset.
      Parameters:
      o - l'elemento da rimuovere.
      Returns:
      la molteplicità dell'elemento prima della rimozione.
    • contains

      default boolean contains(Object o)
      restituisce true se il multiset contiene l'elemento specificato.

      Più formalmente, restituisce true se e solo se il multiset contiene un elemento e tale che Objects.equals(o, e).

      Questo metodo ammette una implementazione di default basata sul metodo multiplicity(Object).

      Parameters:
      o - l'elemento la cui presenza è da verificare.
      Returns:
      true se l'elemento appartiene al multiset.
    • multiplicity

      int multiplicity(Object o)
      Restituisce la molteplicità dell'elemento nel multiset.

      Se l'elemento non appartiene al multiset, restituisce convenzionalmente 0 (senza sollevare eccezioni).

      Parameters:
      o - l'elemento di cui restituire la molteplicità.
      Returns:
      la molteplicità dell'elemento nell'insieme, o 0 se l'elemento non appartiene ad esso.
    • size

      default int size()
      Restituisce la cardinalità del multiset.

      Questo metodo ammette una implementazione di default basata sul metodo multiplicity(Object) e sul fatto che gli elementi del supporto sono iterabili.

      Returns:
      la cardinalità.
    • union

      MultiSet<E> union(MultiSet<? extends E> o)
      Restituisce un nuovo multiset corrispondente all'unione tra questo e l'argomento.

      Questo metodo non modifica questo multiset, o il suo argomento.

      Parameters:
      o - l'altro multiset con cui costruire l'unione.
      Returns:
      l'unione tra i due multiset.
      Throws:
      NullPointerException - se l'argomento è null.
    • intersection

      MultiSet<E> intersection(MultiSet<? extends E> o)
      Restituisce un nuovo multiset corrispondente all'intersezione tra questo e l'argomento.

      Questo metodo non modifica questo multiset, o il suo argomento.

      Parameters:
      o - l'altro multiset con cui costruire l'intersezione.
      Returns:
      l'intersezione tra i due multiset.
      Throws:
      NullPointerException - se l'argomento è null.