Finden Sie eine festgelegte Schnittmenge in Java

Rashmi Patidar 12 Oktober 2023
Finden Sie eine festgelegte Schnittmenge in Java

Der Begriff Set ist eine Schnittstelle im Paket java.util. Ein Set ist eine Sammlungsschnittstelle, die ungeordnete Listen speichert und die Speicherung doppelter Entitäten nicht zulässt. Mathematisch hat die set-Schnittstelle drei Eigenschaften.

  1. Die Elemente in der Menge sind nicht null.
  2. Keine zwei Elemente im Set können gleich sein.
  3. Ein Set behält die Einfügereihenfolge nicht bei.

Verwendung von die Set-Einfügung und finden Sie die Set-Schnittmenge in Java

Sie können das folgende Programm sehen, das das Einfügen von Sets und das Auffinden der Schnittmenge zwischen zwei Sets in Java demonstriert.

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);
  }
}

Im obigen Code wird eine Menge als erster Schritt des Prozesses deklariert. Das new HashSet erzeugt eine neue Instanz der Klasse HashSet und weist die gebildete Referenz der Instanz Set zu. Die Standardkapazität von HashSet beträgt 16 und der Ladefaktor ist 0.75. Die Klasse HashSet ist mit der Schnittstelle Set kompatibel, da die HashSet intern die Schnittstelle Set implementiert.

Die Variable s1 wird mit der Methode add initialisiert. Die Funktion fügt das Objekt des definierten Typs der Set-Instanz hinzu, wobei berücksichtigt wird, dass das Objekt nicht null ist und nicht doppelt vorhanden ist. Die Funktion gibt boolean zurück, je nachdem, ob der Wert eingefügt wurde oder nicht. Die Funktion wirft eine ClassCastException, wenn die Klasse des angegebenen Elements nicht mit der der Set-Instanz übereinstimmt. Es wirft eine NullPointerException, wenn das Element ein Nullwert ist und eine IllegalArgumentException, wenn eine Eigenschaft des Elements seine Aufnahme in die Set-Auflistung verbietet.

Eine andere Möglichkeit, ein Set zu erstellen, besteht darin, die Instanz list zu verwenden, die an den Konstruktorparameter HashSet übergeben wird. Die Liste wird mit der Methode asList der Klasse Arrays mit definierten Werten initialisiert. Die Instanz der Liste wird als Parameter im HashSet-Konstruktor übergeben. Die Set-Auflistung behält nicht die Reihenfolge bei, in der die Elemente gespeichert werden.

Eine weitere Instanz des Sets wird mit der Instanz s1 als Konstruktorparameter instanziiert. Nun ruft diese intersection-Referenz eine andere Methode auf, die die retainAll-Funktion ist. Die Funktion behält nur die Elemente bei, die beim Aufrufen der Instanz und der aufgerufenen Instanz vorhanden sind. Die Methode gibt boolean true zurück, wenn das Set in der Operation retain geändert wird. Es wirft eine UnsupportedOperationException, wenn es die Operation über Sets nicht unterstützt. Es wirft eine ClassCastException, wenn es inkompatible Settypen gibt und eine NullPointerException, wenn das Set ein Null-Element enthält.

Die Ausgabe der obigen Schnittmenge zwischen den Sätzen ist wie folgt.

Ausgabe:

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

Verwandter Artikel - Java Set