Trova un'intersezione in Java

Rashmi Patidar 12 ottobre 2023
Trova un'intersezione in Java

Il termine Set è un’interfaccia presente nel pacchetto java.util. Un set è un’interfaccia di raccolta che archivia elenchi non ordinati e non consente l’archiviazione di entità duplicate. Matematicamente, l’interfaccia set ha tre proprietà.

  1. Gli elementi nel Set sono non nulli.
  2. Non ci sono due elementi nel Set possono essere uguali.
  3. Un set non conserva l’ordine di inserzione.

Usa l’inserimento di set e trova l’intersezione di set in Java

Puoi vedere il programma qui sotto, che mostra l’inserimento del set e la ricerca dell’intersezione tra due set in 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);
  }
}

Nel codice sopra, un set è dichiarato come primo passaggio del processo. Il new HashSet crea una nuova istanza della classe HashSet e assegna il riferimento formato all’istanza Set. La capacità predefinita di HashSet è 16 e il fattore di carico è 0.75. La classe HashSet è compatibile con l’interfaccia Set perché l’HashSet implementa internamente l’interfaccia Set.

La variabile s1 viene inizializzata utilizzando il metodo add. La funzione aggiunge l’oggetto del tipo definito all’istanza di Set, considerando che l’oggetto non è null e non è duplicato. La funzione restituisce boolean a seconda che il valore sia inserito o meno. La funzione genera una ClassCastException se la classe dell’elemento specificato non è simile a quella dell’istanza Set. Genera una NullPointerException se l’elemento è un valore null e una IllegalArgumentException se alcune proprietà dell’elemento ne vietano l’aggiunta nella raccolta Set.

Un altro modo per creare un set è utilizzare l’istanza list passata al parametro del costruttore HashSet. la lista viene inizializzato con valori definiti utilizzando il metodo asList della classe Arrays. L’istanza della lista viene passata come parametro nel costruttore HashSet. La raccolta Set non conserva l’ordine in cui vengono archiviati gli elementi.

Un’altra istanza del Set viene istanziata con l’istanza s1 come parametro del costruttore. Ora, questo riferimento a intersection invoca un altro metodo che è la funzione retainAll. La funzione conserva solo gli elementi presenti nell’invocazione dell’istanza e nell’istanza richiamata. Il metodo restituisce boolean true quando il Set viene modificato nell’operazione retain. Genera un’UnsupportedOperationException se non supporta l’operazione sui set. Genera una ClassCastException se ci sono tipi di set incompatibili e una NullPointerException se il Set contiene un elemento null.

L’output della suddetta intersezione tra gli insiemi è il seguente.

Produzione:

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

Articolo correlato - Java Set