Interface MultiSet<E>
- Type Parameters:
E
- il tipo degli elementi del multiset.
- All Superinterfaces:
Iterable<E>
- All Known Implementing Classes:
AbstractMultiSet, HashMapMultiSet, ListMultiSet
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)
econtains(Object)
, questi sono tipici di collezioni come ad esempioSet
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à eccezioniadd(E e)
, tale metodo potrebbe sollevare anche l'eccezioneClassCastException
. Gli altri metodi accetteranno senza sollevare eccezioni sia riferimentinull
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 TypeMethodDescriptionint
Aggiunge un elemento al multiset.default boolean
restituiscetrue
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
size()
Restituisce la cardinalità del multiset.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
Rimuove l'elemento (se presente) dal multiset.- Parameters:
o
- l'elemento da rimuovere.- Returns:
- la molteplicità dell'elemento prima della rimozione.
-
contains
restituiscetrue
se il multiset contiene l'elemento specificato.Più formalmente, restituisce
true
se e solo se il multiset contiene un elementoe
tale cheObjects.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
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
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
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
.
-