Neste tutorial, aprenderemos sobre a interface Set em Java e seus métodos.
A Set
interface do Collections
framework Java fornece os recursos do conjunto matemático em Java. Ele estende a Collection
interface.
Ao contrário da List
interface, os conjuntos não podem conter elementos duplicados.
Classes que implementam Set
Por Set
ser uma interface, não podemos criar objetos a partir dela.
Para usar as funcionalidades da Set
interface, podemos usar as seguintes classes:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Essas classes são definidas na Collections
estrutura e implementam a Set
interface.
Interfaces que estendem Set
A Set
interface também é estendida por estas subinterfaces:
- SortedSet
- NavigableSet
Como usar o Set?
Em Java, devemos importar o java.util.Set
pacote para poder usar Set
.
// Set implementation using HashSet Set animals = new HashSet();
Aqui, criamos um Set
animal chamado. Usamos a HashSet
classe para implementar a Set
interface.
Métodos de Conjunto
A Set
interface inclui todos os métodos da Collection
interface. É porque Collection
é uma super interface de Set
.
Alguns dos métodos comumente usados da Collection
interface que também estão disponíveis na Set
interface são:
- add () - adiciona o elemento especificado ao conjunto
- addAll () - adiciona todos os elementos da coleção especificada ao conjunto
- iterator () - retorna um iterador que pode ser usado para acessar os elementos do conjunto sequencialmente
- remove () - remove o elemento especificado do conjunto
- removeAll () - remove todos os elementos do conjunto que estão presentes em outro conjunto especificado
- retémAll () - retém todos os elementos do conjunto que também estão presentes em outro conjunto especificado
- clear () - remove todos os elementos do conjunto
- size () - retorna o comprimento (número de elementos) do conjunto
- toArray () - retorna uma matriz contendo todos os elementos do conjunto
- contém () - retorna
true
se o conjunto contém o elemento especificado - containsAll () - retorna
true
se o conjunto contém todos os elementos da coleção especificada - hashCode () - retorna um valor de código hash (endereço do elemento no conjunto)
Para saber mais sobre os métodos da Set
interface, visite Java Set (documentação oficial do Java).
Operações de conjunto
A Set
interface Java nos permite realizar operações matemáticas básicas de conjunto, como união, interseção e subconjunto.
- União - para obter a união de dois conjuntos xey, podemos usar
x.addAll(y)
- Interseção - para obter a interseção de dois conjuntos x e y, podemos usar
x.retainAll(y)
- Subconjunto - para verificar se x é um subconjunto de y, podemos usar
y.containsAll(x)
Implementação da Interface do Conjunto
1. Implementando a classe HashSet
import java.util.Set; import java.util.HashSet; class Main ( public static void main(String() args) ( // Creating a set using the HashSet class Set set1 = new HashSet(); // Add elements to the set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); // Creating another set using the HashSet class Set set2 = new HashSet(); // Add elements set2.add(1); set2.add(2); System.out.println("Set2: " + set2); // Union of two sets set2.addAll(set1); System.out.println("Union is: " + set2); ) )
Resultado
Conjunto1: (2, 3) Conjunto2: (1, 2) União é: (1, 2, 3)
Para saber mais sobre HashSet
, visite Java HashSet.
2. Implementando a classe TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main ( public static void main(String() args) ( // Creating a set using the TreeSet class Set numbers = new TreeSet(); // Add elements to the set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("Set using TreeSet: " + numbers); // Access Elements using iterator() System.out.print("Accessing elements using iterator(): "); Iterator iterate = numbers.iterator(); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Resultado
Definir usando TreeSet: (1, 2, 3) Acessando elementos usando iterador (): 1, 2, 3,
Para saber mais sobre TreeSet
, visite Java TreeSet.
Agora que sabemos o que Set
é, vamos ver suas implementações em classes como EnumSet
, HashSet
, LinkedHashSet
e TreeSet
nos próximos tutoriais.