English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderemos la interfaz Set y sus métodos en Java.
La interfaz Set de la plataforma Java Collections proporciona las funciones de conjuntos matemáticos en Java. Hereda la interfaz Collection.
Diferente de la interfaz List, la colección Set no puede contener elementos repetidos.
Dado que Set es una interfaz, no se puede crear un objeto a partir de ella.
Para usar las funciones del interfaz Set, podemos usar las siguientes clases:
Estas clases están definidas y implementadas en el marco Collections y cumplen con la interfaz Set.
Esta interfaz Set también extiende estos subinterfaz:
En Java, debe importar el paquete java.util.Set para usar Set.
//Implementar Set con HashSet Set<String> animals = new HashSet<>();
Aquí, creamos un Set llamado animals. Ya hemos utilizado HashSet para implementar la interfaz Set.
La interfaz Set contiene todos los métodos de la interfaz Collection. Esto se debe a que Collection es la interfaz superclase de Set.
La interfaz Set también proporciona algunos métodos comunes de la interfaz Collection:
add() - Añadir el elemento especificado a la colección
addAll() - Añadir todos los elementos de la colección especificada a la colección
iterator() -Devuelve un iterador que se puede usar para acceder en orden a los elementos de la colección
remove() - Remover todos los elementos de la colección
removeAll() - Elimina todos los elementos que existen en otro conjunto especificado
keepAll() -Mantiene todos los elementos que aún existen en otro conjunto especificado
clear() - Elimina todos los elementos del conjunto
size() - Devuelve la longitud del conjunto (número de elementos)
toArray() - Devuelve un array que contiene todos los elementos del conjunto
contains() - Devuelve true si el conjunto contiene el elemento especificado
containsAll() - Devuelve true si el conjunto contiene todos los elementos del conjunto especificado
hashCode() -Devuelve el valor de hash (la dirección de los elementos del conjunto)
La interfaz Set de Java nos permite realizar operaciones matemáticas básicas de conjuntos, como la unión, la intersección y el subconjunto.
Unión - Para obtener la unión de dos conjuntos x e y, podemos usar x.addAll(y)
Intersección - Para obtener la intersección de dos conjuntos x e y, podemos usar x.retainAll(y)
Subconjunto - Para verificar si x es un subconjunto de y, podemos usar y.containsAll(x)
1.Implementar la interfaz Set
import java.util.Set; import java.util.HashSet; class Main { public static void main(String[] args) { //Crear un conjunto utilizando la clase HashSet Set<Integer> set1 = new HashSet<>(); //Añadir elementos al set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); //Crear otro conjunto utilizando la clase HashSet Set<Integer> set2 = new HashSet<>(); //Añadir elemento set2.add(1); set2.add(2); System.out.println("Set2: " + set2); //La unión de dos conjuntos set2.addAll(set1); System.out.println("La unión es: " + set2); } }
Resultados de salida
Set1: [2, 3] Set2: [1, 2] La unión es: [1, 2, 3]
Para obtener más información sobre HashSet, visiteJava HashSet.
2.Implementar la clase TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main { public static void main(String[] args) { //Crear un conjunto utilizando la clase TreeSet Set<Integer> numbers = new TreeSet<>(); // Añadir elementos al conjunto set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("TreeSet: " + numbers); //Acceder a los elementos utilizando iterator() System.out.print("Acceder a los elementos usando iterator(): "); Iterator<Integer> iterate = numbers.iterator(); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
Resultados de salida
TreeSet: [1, 2, 3] Acceder a los elementos usando iterator(): 1, 2, 3,
Para obtener más información sobre TreeSet, visiteJava TreeSet.
Ahora que sabemos qué es Set, en los siguientes tutoriales veremos su implementación en clases como EnumSet, HashSet, LinkedHashSet y TreeSet.