Salta ai contenuti
Manuale LogoManuale Logo

Set

Un Set e una collezione che contiene elementi unici.

Se provi ad aggiungere due volte lo stesso valore, il duplicato non viene inserito.

Per iniziare useremo HashSet.

import java.util.HashSet;
import java.util.HashSet;
public class NomiUnici {
public static void main(String[] args) {
HashSet<String> nomi = new HashSet<>();
nomi.add("Luca");
nomi.add("Sara");
nomi.add("Luca");
System.out.println(nomi);
}
}

Output possibile:

[Luca, Sara]

"Luca" compare una sola volta.

Usa add.

HashSet<String> parole = new HashSet<>();
parole.add("java");
parole.add("codice");
parole.add("java");

Il secondo "java" viene ignorato perché esiste già.

Usa contains.

HashSet<String> invitati = new HashSet<>();
invitati.add("Luca");
invitati.add("Sara");
if (invitati.contains("Sara")) {
System.out.println("Sara e nella lista.");
}

Output:

Sara e nella lista.

Usa remove.

HashSet<String> invitati = new HashSet<>();
invitati.add("Luca");
invitati.add("Sara");
invitati.remove("Luca");
System.out.println(invitati);

Output:

[Sara]

Puoi usare il ciclo for-each:

HashSet<String> linguaggi = new HashSet<>();
linguaggi.add("Java");
linguaggi.add("Python");
linguaggi.add("PHP");
for (String linguaggio : linguaggi) {
System.out.println(linguaggio);
}

L’ordine non è garantito. Un HashSet mantiene l’unicità, non una posizione precisa.

Usa un array quando hai una dimensione fissa.

Usa ArrayList quando vuoi una lista ordinata che può crescere.

Usa HashSet quando vuoi evitare duplicati e controllare rapidamente se un elemento esiste.

import java.util.HashSet;
public class ParoleUniche {
public static void main(String[] args) {
String[] parole = {"java", "codice", "java", "metodo", "codice"};
HashSet<String> uniche = new HashSet<>();
for (int i = 0; i < parole.length; i++) {
uniche.add(parole[i]);
}
System.out.println(uniche);
}
}

Output possibile:

[java, metodo, codice]

Il risultato contiene ogni parola una sola volta.