Trova un'intersezione in Java
![Trova un'intersezione in Java](/img/Java/feature-image---java-set-intersection.webp)
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à.
- Gli elementi nel Set sono non nulli.
- Non ci sono due elementi nel Set possono essere uguali.
- 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 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