L'interface Set en Java

Qu'est-ce qu'un Set en Java ?

Un Set est une interface située dans le package java.util qui permet de gérer des collections d'éléments sans doublons. Certaines implémentations peuvent imposer des limitations sur les types d'éléments pouvant être ajoutés, par exemple, il se peut qu'elles ne permettent pas d'ajouter des éléments null. Dans ce cas, essayer d'ajouter un élément non valide produira généralement une exception NullPointerException ou ClassCastException. Les classes les plus couramment utilisées qui mettent en œuvre cette interface sont HashSet et TreeSet.

Syntaxe de l'interface Set

Voici la syntaxe à utiliser pour créer un Set :

Set monSet = new HashSet();

Dans cet exemple, monSet est une instance d'un Set, définie avec un type générique à l'intérieur des chevrons <...>.

Méthodes de l'interface Set

L'interface Set dispose de plusieurs méthodes utiles :

  • .add(item) : Ajoute l'élément item au Set, s'il n'est pas déjà présent.
  • .clear() : Supprime tous les éléments du Set.
  • .contains(item) : Retourne true si item se trouve dans le Set.
  • .remove(item) : Retire item du Set.
  • .size() : Retourne le nombre d'éléments dans le Set.

Exemple d'utilisation d'un Set

Voici un exemple illustrant l'implémentation de l'interface Set avec HashSet :

import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set aliments = new HashSet();
        aliments.add("Chou");
        aliments.add("Pizza");
        aliments.add("Saucisse");
        aliments.add("Pommes de terre");
        aliments.add("Salade");
        aliments.remove("Saucisse");
        System.out.println(aliments.contains("Saucisse"));
        System.out.println(aliments);
        System.out.println(aliments.size());
    }
}

La sortie de ce programme affichera :

false
[Pizza, Pommes de terre, Chou, Salade]
4