English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo l'interfaccia Set e i suoi metodi in Java.
L'interfaccia Set del framework Java Collections fornisce le funzionalità di insieme matematico in Java. Eredita l'interfaccia Collection.
Diversamente dall'interfaccia List, il set non può contenere elementi ripetuti.
Poiché Set è un'interfaccia, non è possibile creare oggetti da essa.
Per utilizzare le funzionalità dell'interfaccia Set, possiamo utilizzare le seguenti classi:
Queste classi sono definite e implementate nel framework Collections e implementano l'interfaccia Set.
L'interfaccia Set espande anche questi sotto-interfaccia:
In Java, è necessario importare il pacchetto java.util.Set per utilizzare Set.
// Implementazione di HashSet per Set Set<String> animals = new HashSet<>();
In questo esempio, abbiamo creato un set chiamato animals. Abbiamo utilizzato HashSet per implementare l'interfaccia Set.
L'interfaccia Set contiene tutti i metodi dell'interfaccia Collection. Questo perché Collection è l'interfaccia superiore di Set.
L'interfaccia Set fornisce anche alcuni metodi comuni dell'interfaccia Collection:
add() - Aggiunge l'elemento specificato al set
addAll() - Aggiunge tutti gli elementi dello set specificato al set
iterator() - Restituisce un iteratore che può essere utilizzato per accedere in ordine agli elementi del set
remove() - Rimuove l'elemento specificato dal set
removeAll() - Rimuove tutti gli elementi del set che esistono nello set specificato
keepAll() - Mantiene tutti gli elementi del set che esistono ancora nello set specificato
clear() - Rimuove tutti gli elementi dal set
size() - Restituisce la lunghezza del set (numero di elementi)
toArray() - Restituisce un array che contiene tutti gli elementi del set
contains() - Restituisce true se il set contiene l'elemento specificato
containsAll() - Restituisce true se il set contiene tutti gli elementi dello set specificato
hashCode() - Restituisce il valore dell'hash (l'indirizzo degli elementi del set)
L'interfaccia Set di Java ci permette di eseguire operazioni di calcolo di insieme di base, come l'intersezione, l'unione e il sottoinsieme.
Unione - Per ottenere l'unione tra gli insiemi x e y, possiamo usare x.addAll(y)
Intersezione - Per ottenere l'intersezione tra gli insiemi x e y, possiamo usare x.retainAll(y)
Sottoinsieme - Per verificare se x è un sottoinsieme di y, possiamo usare y.containsAll(x)
1. Implementare la classe HashSet
import java.util.Set; import java.util.HashSet; class Main { public static void main(String[] args) { //Creare la集合 utilizzando la classe HashSet Set<Integer> set1 = new HashSet<>(); //Aggiungere elementi a set1 set1.add(2); set1.add(3); System.out.println("Set1: \n" + set1); //Creare un altro insieme utilizzando la classe HashSet Set<Integer> set2 = new HashSet<>(); //Aggiungere elementi set2.add(1); set2.add(2); System.out.println("Set2: \n" + set2); //Unione di due insiemi set2.addAll(set1); System.out.println("L'intersezione è: \n" + set2); } }
Risultato di output
Set1: [2, 3] Set2: [1, 2] L'unione è: [1, 2, 3]
Per ulteriori informazioni su HashSet, visitareJava HashSet.
2. Implementare la classe TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main { public static void main(String[] args) { //Creare la集合 utilizzando la classe TreeSet Set<Integer> numbers = new TreeSet<>(); //Aggiungere elementi alla集合 set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("TreeSet: \n" + numbers); //Utilizzare iterator() per accedere agli elementi System.out.print("Utilizzare iterator() per accedere agli elementi: \n"); Iterator<Integer> iterate = numbers.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
Risultato di output
TreeSet: [1, 2, 3] Accedi agli elementi tramite iterator(): 1, 2, 3,
Per ulteriori informazioni su TreeSet, visitareJava TreeSet.
Ora sappiamo cosa è Set, nel prossimo tutorial vedremo la sua implementazione nelle classi EnumSet, HashSet, LinkedHashSet e TreeSet.