Interfaccia Set in Java
- L'interfaccia
Set
estendeCollection
e definisce il comportamento di una collezione che non consente elementi duplicati. - Gli elementi in un
Set
non hanno un ordine specifico, a meno che non si utilizzi unSortedSet
o unNavigableSet
. - I metodi principali includono
add()
,remove()
,contains()
,size()
, e i metodi factoryof()
ecopyOf()
. - L'interfaccia
SortedSet
estendeSet
e definisce un insieme ordinato in base all'ordinamento naturale degli elementi o a un comparatore fornito. - L'interfaccia
NavigableSet
estendeSortedSet
e fornisce metodi per il recupero di elementi basati sulla corrispondenza più vicina a un valore dato.
L'interfaccia Set
L'interfaccia Set
definisce un insieme, inteso in senso matematico. Quindi, non può contenere elementi duplicati.
Estende Collection
e specifica il comportamento di una collezione che non consente elementi duplicati. Pertanto, il metodo add()
restituisce false
se viene fatto un tentativo di aggiungere elementi duplicati a un insieme.
Con due eccezioni, non specifica alcun metodo aggiuntivo proprio. Set
è un'interfaccia generica che ha questa dichiarazione:
interface Set<E> extends Collection<E>
Qui, E
specifica il tipo di oggetti che l'insieme conterrà.
A partire da JDK 9, Set
include il metodo factory of()
, che ha un numero di overload. Ogni versione restituisce una collezione non modificabile, basata su valori che è composta dagli argomenti che le vengono passati. Lo scopo principale di of()
è fornire un modo conveniente ed efficiente per creare una piccola collezione Set
. Ci sono 12 overload di of()
. Uno non prende argomenti e crea un insieme vuoto. È mostrato qui:
static <E> Set<E> of()
Dieci overload prendono da 1 a 10 argomenti e creano una lista che contiene gli elementi specificati. Sono mostrati qui:
static <E> Set<E> of(E ogg1)
static <E> Set<E> of(E ogg1, E ogg2)
static <E> Set<E> of(E ogg, E ogg2, E ogg3)
...
static <E> Set<E> of(E ogg1, E ogg2, E ogg3, E ogg4, E ogg5,
E ogg6, E ogg7, E ogg8, E ogg9, E ogg10)
L'overload finale di of()
specifica un parametro varargs che prende un numero arbitrario di elementi o un array di elementi. È mostrato qui:
static <E> Set<E> of(E ... oggs)
Per tutte le versioni, gli elementi null
non sono consentiti. In tutti i casi, l'implementazione Set
non è specificata.
A partire da JDK 10, Set
include il metodo statico copyOf()
mostrato qui:
static <E> Set<E> copyOf(Collection <? extends E> sorgente)
Restituisce un insieme che contiene gli stessi elementi di sorgente
. I valori null non sono consentiti. L'insieme restituito è non modificabile e basato su valori.
L'Interfaccia SortedSet
L'interfaccia SortedSet
estende Set
e dichiara il comportamento di un insieme ordinato in ordine crescente. Infatti, normalmente un insieme o Set
non ha un ordine degli elementi e se li scorriamo con un iteratore, l'ordine degli elementi non è garantito. Tuttavia, un SortedSet
mantiene gli elementi in ordine crescente. Quindi, quando si scorre un SortedSet
, gli elementi vengono restituiti in ordine crescente.
SortedSet
è un'interfaccia generica che ha questa dichiarazione:
interface SortedSet<E> extends Set<E>
Qui, E
specifica il tipo di oggetti che l'insieme conterrà.
Oltre ai metodi forniti da Set
, l'interfaccia SortedSet
dichiara i metodi riassunti nella Tabella seguente:
Metodo | Descrizione |
---|---|
Comparator<? super E> comparator() |
Restituisce il comparatore dell'insieme ordinato invocante. Se l'ordinamento naturale è usato per questo insieme, viene restituito null . |
E first() |
Restituisce il primo elemento nell'insieme ordinato invocante. |
SortedSet<E> headSet(E end) |
Restituisce un SortedSet contenente quegli elementi minori di end che sono contenuti nell'insieme ordinato invocante. Gli elementi nell'insieme ordinato restituito sono anche referenziati dall'insieme ordinato invocante. |
E last() |
Restituisce l'ultimo elemento nell'insieme ordinato invocante. |
SortedSet<E> subSet(E start, E end) |
Restituisce un SortedSet che include quegli elementi tra start e end –1. Gli elementi nella collezione restituita sono anche referenziati dall'oggetto invocante. |
SortedSet<E> tailSet(E start) |
Restituisce un SortedSet che contiene quegli elementi maggiori o uguali a start che sono contenuti nell'insieme ordinato. Gli elementi nell'insieme restituito sono anche referenziati dall'oggetto invocante. |
Diversi metodi lanciano una NoSuchElementException
quando nessun elemento è contenuto nell'insieme invocante. Una ClassCastException
viene lanciata quando un oggetto è incompatibile con gli elementi in un insieme. Una NullPointerException
viene lanciata se si tenta di usare un oggetto null
e null
non è permesso nell'insieme. Una IllegalArgumentException
viene lanciata se viene usato un argomento non valido.
SortedSet
definisce diversi metodi che rendono l'elaborazione dell'insieme più conveniente. Per ottenere il primo oggetto nell'insieme, chiamare first()
. Per ottenere l'ultimo elemento, usare last()
. È possibile ottenere un sottoinsieme di un insieme ordinato chiamando subSet()
, specificando il primo e l'ultimo oggetto nell'insieme. Se serve il sottoinsieme che inizia con il primo elemento nell'insieme, usare headSet()
. Se si vuole il sottoinsieme che termina l'insieme, usare tailSet()
.
L'interfaccia NavigableSet
L'interfaccia NavigableSet
estende SortedSet
e dichiara il comportamento di una collezione che supporta il recupero di elementi basato sulla corrispondenza più vicina a un valore o valori dati.
NavigableSet
è un'interfaccia generica che ha questa dichiarazione:
interface NavigableSet<E> extends SortedSet<E>
Qui, E
specifica il tipo di oggetti che il set conterrà. Oltre ai metodi che eredita da SortedSet
, NavigableSet
aggiunge quelli riassunti nella Tabella che segue:
Metodo | Descrizione |
---|---|
E ceiling(E oggetto) |
Cerca nel set l'elemento più piccolo e tale che e >= oggetto . Se tale elemento viene trovato, viene restituito. Altrimenti, viene restituito null . |
Iterator <E> descendingIterator() |
Restituisce un iteratore che si muove dal più grande al più piccolo. In altre parole, restituisce un iteratore inverso. |
NavigableSet <E> descendingSet() |
Restituisce un NavigableSet che è l'inverso del set che invoca. Il set risultante è supportato dal set che invoca. |
E floor(E oggetto) |
Cerca nel set l'elemento più grande e tale che e <= oggetto . Se tale elemento viene trovato, viene restituito. Altrimenti, viene restituito null . |
NavigableSet <E> headSet(E limiteSuperore, boolean incl) |
Restituisce un NavigableSet che include tutti gli elementi del set che invoca che sono minori di limiteSuperore . Se incl è true, allora un elemento uguale a limiteSuperore è incluso. Il set risultante è supportato dal set che invoca. |
E higher(E oggetto) |
Cerca nel set l'elemento più piccolo e tale che e > oggetto . Se tale elemento viene trovato, viene restituito. Altrimenti, viene restituito null . |
E lower(E oggetto) |
Cerca nel set l'elemento più grande e tale che e < oggetto . Se tale elemento viene trovato, viene restituito. Altrimenti, viene restituito null . |
E pollFirst() |
Restituisce il primo elemento, rimuovendo l'elemento nel processo. Poiché il set è ordinato, questo è l'elemento con il valore più piccolo. Viene restituito null se il set è vuoto. |
E pollLast() |
Restituisce l'ultimo elemento, rimuovendo l'elemento nel processo. Poiché il set è ordinato, questo è l'elemento con il valore più grande. Viene restituito null se il set è vuoto. |
NavigableSet <E> subSet(E limiteInferiore, boolean inclBasso, E limiteSuperore, boolean inclAlto) |
Restituisce un NavigableSet che include tutti gli elementi del set che invoca che sono maggiori di limiteInferiore e minori di limiteSuperore . Se inclBasso è true , allora un elemento uguale a limiteInferiore è incluso. Se inclAlto è true , allora un elemento uguale a limiteSuperore è incluso. Il set risultante è supportato dal set che invoca. |
NavigableSet <E> tailSet(E limiteInferiore, boolean incl) |
Restituisce un NavigableSet che include tutti gli elementi del set che invoca che sono maggiori di limiteInferiore . Se incl è true , allora un elemento uguale a limiteInferiore è incluso. Il set risultante è supportato dal set che invoca. |
Una ClassCastException
viene lanciata quando un oggetto è incompatibile con gli elementi nel set. Una NullPointerException
viene lanciata se viene fatto un tentativo di usare un oggetto null
e null
non è consentito nel set. Una IllegalArgumentException
viene lanciata se viene usato un argomento non valido.