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.
- Les éléments de l’Ensemble sont non nuls.
- Deux éléments de l’Ensemble ne peuvent pas être égaux.
- 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 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