Encontre um conjunto de intersecção em Java

Rashmi Patidar 12 outubro 2023
Encontre um conjunto de intersecção em Java

O termo Set é uma interface presente no pacote java.util. Um conjunto é uma interface de coleção que armazena listas não ordenadas e não permite o armazenamento de entidades duplicadas. Matematicamente, a interface do conjunto possui três propriedades.

  1. Os elementos do Conjunto não são nulos.
  2. Dois elementos no Conjunto não podem ser iguais.
  3. Um conjunto não preserva o pedido de inserção.

Use a inserção de conjunto e encontre a interseção de conjunto em Java

Você pode ver o programa abaixo, que demonstra a inserção de Set e como encontrar a interseção entre dois conjuntos em 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);
  }
}

No código acima, um conjunto é declarado como a primeira etapa do processo. O novo HashSet cria uma nova instância da classe HashSet e atribui a referência formada à instância Set. A capacidade padrão de HashSet é 16 e o fator de carga é 0.75. A classe HashSet é compatível com a interface Set porque o HashSet implementa internamente a interface Set.

A variável s1 é inicializada usando o método add. A função adiciona o objeto do tipo definido à instância Set, considerando que o objeto não é nulo e não é duplicado. A função retorna booleano com base no fato de o valor ser inserido ou não. A função lança uma ClassCastException se a classe do elemento especificado não for semelhante à da instância Set. Ele lança uma NullPointerException se o elemento for um valor nulo e uma IllegalArgumentException se alguma propriedade do elemento proibir sua adição na coleção Set.

Outra maneira de criar um conjunto é usando a instância list passada para o parâmetro do construtor HashSet. A lista é inicializada com valores definidos usando o método asList da classe Arrays. A instância da lista é passada como um parâmetro no construtor HashSet. A coleção Set não preserva a ordem em que os elementos são armazenados.

Outra instância do Set é instanciada com a instância s1 como um parâmetro do construtor. Agora, esta referência de intersection invoca outro método que é a função reterAll. A função retém apenas os elementos que estão presentes na chamada da instância e na instância chamada. O método retorna booleano true quando o conjunto é alterado na operação retain. Ele lança uma UnsupportedOperationException se não suportar a operação sobre conjuntos. Ele lança uma ClassCastException se houver tipos de conjunto incompatíveis e uma NullPointerException se o Conjunto contiver um elemento nulo.

A saída da interseção acima entre os conjuntos é a seguinte.

Resultado:

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

Artigo relacionado - Java Set