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.
- Os elementos do Conjunto não são nulos.
- Dois elementos no Conjunto não podem ser iguais.
- 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 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