Trouver une intersection d'ensemble en Java

Rashmi Patidar 12 octobre 2023
Trouver une intersection d'ensemble en Java

Le terme Set est une interface présente dans le package java.util. Un ensemble est une interface de collection qui stocke des listes non ordonnées et ne permet pas le stockage d’entités en double. Mathématiquement, l’interface set a trois propriétés.

  1. Les éléments de l’Ensemble sont non nuls.
  2. Deux éléments de l’Ensemble ne peuvent pas être égaux.
  3. Un ensemble ne préserve pas l’ordre d’insertion.

Utiliser l’insertion d’ensemble et rechercher l’intersection d’ensemble en Java

Vous pouvez voir le programme ci-dessous, qui montre l’insertion d’un ensemble et la recherche de l’intersection entre deux ensembles en Java.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SetIntersection {
  public static void main(String[] args) {
    Set<Integer> s1 = new HashSet<>();
    s1.add(2);
    s1.add(7);
    s1.add(1);
    System.out.println("Set1: " + s1);
    List list = Arrays.asList(1, 7, 6, 8);
    Set<Integer> s2 = new HashSet<>(list);
    System.out.println("Set2: " + s2);
    Set<Integer> intersection = new HashSet<>(s1);
    intersection.retainAll(s2);
    System.out.println("Intersection: " + intersection);
  }
}

Dans le code ci-dessus, un ensemble est déclaré comme première étape du processus. Le new HashSet crée une nouvelle instance de la classe HashSet et affecte la référence formée à l’instance Set. La capacité par défaut de HashSet est 16 et le facteur de charge est 0.75. La classe HashSet est compatible avec l’interface Set car le HashSet implémente en interne l’interface Set.

La variable s1 est initialisée à l’aide de la méthode add. La fonction ajoute l’objet du type défini à l’instance Set, en considérant que l’objet est non nul et n’est pas dupliqué. La fonction renvoie booléen selon que la valeur est insérée ou non. La fonction lève une ClassCastException si la classe de l’élément spécifié n’est pas similaire à celle de l’instance Set. Il lève une NullPointerException si l’élément est une valeur null et une IllegalArgumentException si une propriété de l’élément interdit son ajout dans la collection Set.

Une autre façon de créer un ensemble consiste à utiliser l’instance list passée dans le paramètre du constructeur HashSet. La liste est initialisée avec des valeurs définies en utilisant la méthode asList de la classe Arrays. L’instance de la liste est passée en paramètre dans le constructeur HashSet. La collection Set ne préserve pas l’ordre dans lequel les éléments sont stockés.

Une autre instance de l’ensemble est instanciée avec l’instance s1 en tant que paramètre de constructeur. Maintenant, cette référence intersection invoque une autre méthode qui est la fonction retainAll. La fonction ne conserve que les éléments présents lors de l’appel de l’instance et de l’instance invoquée. La méthode renvoie boolean true lorsque l’ensemble est modifié dans l’opération retain. Il lève une UnsupportedOperationException s’il ne prend pas en charge l’opération sur les ensembles. Il lève une ClassCastException s’il existe des types de set incompatibles et une NullPointerException si le Set contient un élément null.

La sortie de l’intersection ci-dessus entre les ensembles est comme ci-dessous.

Production:

Set1: [1, 2, 7]
Set2: [1, 6, 7, 8]
Intersection: [1, 7]
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Article connexe - Java Set