La interfaz establecida está presente en el paquete java.util y extiende la Interfaz de colección . Es una colección desordenada de objetos en la que no se pueden almacenar valores duplicados. Es una interfaz que implementa el conjunto matemático. Esta interfaz contiene los métodos heredados de la interfaz Colección y agrega una función que restringe la inserción de elementos duplicados. Hay dos interfaces que amplían la implementación del conjunto, a saber, SortedSet y NavigableSet.
En la imagen de arriba, el conjunto navegable amplía la interfaz del conjunto ordenado. Dado que un conjunto no conserva el orden de inserción, la interfaz del conjunto navegable proporciona la implementación para navegar a través del conjunto. La clase que implementa el conjunto navegable es un TreeSet que es una implementación de un árbol autoequilibrado. Por tanto, esta interfaz nos proporciona una manera de navegar a través de este árbol.
Declaración: La interfaz Set se declara como:
public interface Set extends Collection>
Crear objetos establecidos
Dado que Set es un interfaz , no se pueden crear objetos con la composición tipográfica. Siempre necesitamos una clase que amplíe esta lista para poder crear un objeto. Y también, tras la introducción de Genéricos en Java 1.5, es posible restringir el tipo de objeto que se puede almacenar en el Conjunto. Este conjunto de tipos seguros se puede definir como:
// Obj is the type of the object to be stored in Set Set set = new HashSet ();>
Analicemos los métodos presentes en la interfaz Set que se proporciona a continuación en un formato tabular de la siguiente manera:
Método | Descripción |
---|---|
agregar (elemento) | Este método se utiliza para agregar un elemento específico al conjunto. La función agrega el elemento solo si el elemento especificado aún no está presente en el conjunto; de lo contrario, la función devuelve False si el elemento ya está presente en el conjunto. |
agregar todo (colección) | Este método se utiliza para agregar todos los elementos de la colección mencionada al conjunto existente. Los elementos se añaden aleatoriamente sin seguir ningún orden específico. |
claro() | Este método se utiliza para eliminar todos los elementos del conjunto pero no eliminar el conjunto. La referencia del conjunto todavía existe. |
contiene (elemento) | Este método se utiliza para comprobar si un elemento específico está presente en el Conjunto o no. |
contieneTodo(colección) | Este método se utiliza para comprobar si el conjunto contiene todos los elementos presentes en la colección dada o no. Este método devuelve verdadero si el conjunto contiene todos los elementos y devuelve falso si falta alguno de los elementos. |
código hash() | Este método se utiliza para obtener el valor de hashCode para esta instancia del Conjunto. Devuelve un valor entero que es el valor del código hash para esta instancia del Conjunto. |
esta vacio() | Este método se utiliza para comprobar si el conjunto está vacío o no. |
iterador() | Este método se utiliza para devolver el iterador del conjunto. Los elementos del conjunto se devuelven en orden aleatorio. |
eliminar (elemento) | Este método se utiliza para eliminar el elemento dado del conjunto. Este método devuelve Verdadero si el elemento especificado está presente en el Conjunto; de lo contrario, devuelve Falso. |
eliminarTodo(colección) | Este método se utiliza para eliminar todos los elementos de la colección que están presentes en el conjunto. Este método devuelve verdadero si este conjunto cambió como resultado de la llamada. |
retenerTodo(colección) | Este método se utiliza para conservar todos los elementos del conjunto que se mencionan en la colección dada. Este método devuelve verdadero si este conjunto cambió como resultado de la llamada. |
tamaño() | Este método se utiliza para obtener el tamaño del conjunto. Esto devuelve un valor entero que indica el número de elementos. |
a matriz() | Este método se utiliza para formar una matriz de los mismos elementos que la del Conjunto. |
Ilustración: Programa de muestra para ilustrar la interfaz del conjunto
Java
// Java program Illustrating Set Interface> > // Importing utility classes> import> java.util.*;> > // Main class> public> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Demonstrating Set using HashSet> > // Declaring object of type String> > Set hash_Set => new> HashSet();> > > // Adding elements to the Set> > // using add() method> > hash_Set.add(> 'Geeks'> );> > hash_Set.add(> 'For'> );> > hash_Set.add(> 'Geeks'> );> > hash_Set.add(> 'Example'> );> > hash_Set.add(> 'Set'> );> > > // Printing elements of HashSet object> > System.out.println(hash_Set);> > }> }> |
>
>Producción
[Set, Example, Geeks, For]>
Operaciones en la interfaz Set
La interfaz del televisor permite a los usuarios realizar operaciones matemáticas básicas en el televisor. Tomemos dos matrices para comprender estas operaciones básicas. Sea conjunto1 = [1, 3, 2, 4, 8, 9, 0] y conjunto2 = [1, 3, 7, 5, 4, 0, 7, 5]. Entonces las posibles operaciones sobre los conjuntos son:
1. Intersección: Esta operación devuelve todos los elementos comunes de los dos conjuntos dados. Para los dos conjuntos anteriores, la intersección sería:
Intersection = [0, 1, 3, 4]>
2. Unión: Esta operación suma todos los elementos de un conjunto con el otro. Para los dos conjuntos anteriores, la unión sería:
Union = [0, 1, 2, 3, 4, 5, 7, 8, 9]>
3. Diferencia: Esta operación elimina todos los valores presentes en un conjunto del otro conjunto. Para los dos conjuntos anteriores, la diferencia sería:
Difference = [2, 8, 9]>
Ahora implementemos las siguientes operaciones como se definió anteriormente de la siguiente manera:
Ejemplo:
Java
css cambiando el tamaño de la imagen
// Java Program Demonstrating Operations on the Set> // such as Union, Intersection and Difference operations> > // Importing all utility classes> import> java.util.*;> > // Main class> public> class> SetExample {> > > // Main driver method> > public> static> void> main(String args[])> > {> > // Creating an object of Set class> > // Declaring object of Integer type> > Set a => new> HashSet();> > > // Adding all elements to List> > a.addAll(Arrays.asList(> > new> Integer[] {> 1> ,> 3> ,> 2> ,> 4> ,> 8> ,> 9> ,> 0> }));> > > // Again declaring object of Set class> > // with reference to HashSet> > Set b => new> HashSet();> > > b.addAll(Arrays.asList(> > new> Integer[] {> 1> ,> 3> ,> 7> ,> 5> ,> 4> ,> 0> ,> 7> ,> 5> }));> > > > // To find union> > Set union => new> HashSet(a);> > union.addAll(b);> > System.out.print(> 'Union of the two Set'> );> > System.out.println(union);> > > // To find intersection> > Set intersection => new> HashSet(a);> > intersection.retainAll(b);> > System.out.print(> 'Intersection of the two Set'> );> > System.out.println(intersection);> > > // To find the symmetric difference> > Set difference => new> HashSet(a);> > difference.removeAll(b);> > System.out.print(> 'Difference of the two Set'> );> > System.out.println(difference);> > }> }> |
>
>Producción
Union of the two Set[0, 1, 2, 3, 4, 5, 7, 8, 9] Intersection of the two Set[0, 1, 3, 4] Difference of the two Set[2, 8, 9]>
Realizar varias operaciones en SortedSet
Después de la introducción de Genéricos en Java 1.5, es posible restringir el tipo de objeto que se puede almacenar en el Conjunto. Dado que Set es una interfaz, sólo se puede utilizar con una clase que implemente esta interfaz. HashSet es una de las clases más utilizadas que implementa la interfaz Set. Ahora, veamos cómo realizar algunas operaciones de uso frecuente en HashSet. Vamos a realizar las siguientes operaciones de la siguiente manera:
- Agregar elementos
- Accediendo a elementos
- Eliminando elementos
- Elementos iterativos
- Iterando a través del conjunto
Ahora analicemos estas operaciones individualmente de la siguiente manera:
Operaciones 1: Agregar elementos
Para agregar un elemento al Conjunto, podemos usar el método agregar () . Sin embargo, el orden de inserción no se conserva en el conjunto. Internamente, para cada elemento, se genera un hash y los valores se almacenan con respecto al hash generado. los valores se comparan y ordenan en orden ascendente. Debemos tener en cuenta que no se permiten elementos duplicados y que todos los elementos duplicados se ignoran. Y además, el conjunto acepta valores nulos.
Ejemplo
Java
// Java Program Demonstrating Working of Set by> // Adding elements using add() method> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating an object of Set and> > // declaring object of type String> > Set hs => new> HashSet();> > > // Adding elements to above object> > // using add() method> > hs.add(> 'B'> );> > hs.add(> 'B'> );> > hs.add(> 'C'> );> > hs.add(> 'A'> );> > > // Printing the elements inside the Set object> > System.out.println(hs);> > }> }> |
>
>Producción
[A, B, C]>
Operación 2: Accediendo a los elementos
Después de agregar los elementos, si deseamos acceder a los elementos, podemos usar métodos incorporados como contiene().
Ejemplo
Java
// Java code to demonstrate Working of Set by> // Accessing the Elements of the Set object> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating an object of Set and> > // declaring object of type String> > Set hs => new> HashSet();> > > // Elements are added using add() method> > // Later onwards we will show accessing the same> > > // Custom input elements> > hs.add(> 'A'> );> > hs.add(> 'B'> );> > hs.add(> 'C'> );> > hs.add(> 'A'> );> > > // Print the Set object elements> > System.out.println(> 'Set is '> + hs);> > > // Declaring a string> > String check => 'D'> ;> > > // Check if the above string exists in> > // the SortedSet or not> > // using contains() method> > System.out.println(> 'Contains '> + check +> ' '> > + hs.contains(check));> > }> }> |
>
>Producción
Set is [A, B, C] Contains D false>
Operación 3: Eliminando los valores
Los valores se pueden eliminar del conjunto utilizando el método remove().
comparar en java
Ejemplo
Java
// Java Program Demonstrating Working of Set by> // Removing Element/s from the Set> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Declaring object of Set of type String> > Set hs => new> HashSet();> > > // Elements are added> > // using add() method> > > // Custom input elements> > hs.add(> 'A'> );> > hs.add(> 'B'> );> > hs.add(> 'C'> );> > hs.add(> 'B'> );> > hs.add(> 'D'> );> > hs.add(> 'E'> );> > > // Printing initial Set elements> > System.out.println(> 'Initial HashSet '> + hs);> > > // Removing custom element> > // using remove() method> > hs.remove(> 'B'> );> > > // Printing Set elements after removing an element> > // and printing updated Set elements> > System.out.println(> 'After removing element '> + hs);> > }> }> |
>
>Producción
Initial HashSet [A, B, C, D, E] After removing element [A, C, D, E]>
Operación 4: Iterando a través del conjunto
borde usando css
Hay varias formas de iterar a través del Conjunto. El más famoso es utilizar el bucle for mejorado.
Ejemplo
Java
// Java Program to Demonstrate Working of Set by> // Iterating through the Elements> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating object of Set and declaring String type> > Set hs => new> HashSet();> > > // Adding elements to Set> > // using add() method> > > // Custom input elements> > hs.add(> 'A'> );> > hs.add(> 'B'> );> > hs.add(> 'C'> );> > hs.add(> 'B'> );> > hs.add(> 'D'> );> > hs.add(> 'E'> );> > > // Iterating through the Set> > // via for-each loop> > for> (String value : hs)> > > // Printing all the values inside the object> > System.out.print(value +> ', '> );> > > System.out.println();> > }> }> |
>
>Producción
A, B, C, D, E,>
Las clases que implementan la interfaz Set en las colecciones de Java se pueden percibir fácilmente en la siguiente imagen y se enumeran a continuación:
- Conjunto de hash
- Conjunto de enumeraciones
- LinkedHashSet
- Conjunto de árboles

Clase 1: Conjunto de hash
Clase HashSet que se implementa en el marco de colección es una implementación inherente de la Ejemplo
Java
// Java program Demonstrating Creation of Set object> // Using the Hashset class> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating object of Set of type String> > Set h => new> HashSet();> > > // Adding elements into the HashSet> > // using add() method> > > // Custom input elements> > h.add(> 'India'> );> > h.add(> 'Australia'> );> > h.add(> 'South Africa'> );> > > // Adding the duplicate element> > h.add(> 'India'> );> > > // Displaying the HashSet> > System.out.println(h);> > > // Removing items from HashSet> > // using remove() method> > h.remove(> 'Australia'> );> > System.out.println(> 'Set after removing '> > +> 'Australia:'> + h);> > > // Iterating over hash set items> > System.out.println(> 'Iterating over set:'> );> > > // Iterating through iterators> > Iterator i = h.iterator();> > > // It holds true till there is a single element> > // remaining in the object> > while> (i.hasNext())> > > System.out.println(i.next());> > }> }> |
>
>Producción
[South Africa, Australia, India] Set after removing Australia:[South Africa, India] Iterating over set: South Africa India>
Clase 2: Conjunto de enumeraciones
Clase EnumSet que se implementa en el marco de colecciones es una de las implementaciones especializadas de la interfaz Set para usar con el tipo de enumeración . Es una implementación de conjunto de alto rendimiento, mucho más rápida que HashSet. Todos los elementos de un conjunto de enumeración deben provenir de un único tipo de enumeración que se especifica cuando se crea el conjunto, ya sea explícita o implícitamente. Veamos cómo crear un objeto establecido usando esta clase.
Ejemplo
Java
// Java program to demonstrate the> // creation of the set object> // using the EnumSet class> import> java.util.*;> > enum> Gfg { CODE, LEARN, CONTRIBUTE, QUIZ, MCQ }> ;> > public> class> GFG {> > > public> static> void> main(String[] args)> > {> > // Creating a set> > Set set1;> > > // Adding the elements> > set1 = EnumSet.of(Gfg.QUIZ, Gfg.CONTRIBUTE,> > Gfg.LEARN, Gfg.CODE);> > > System.out.println(> 'Set 1: '> + set1);> > }> }> |
>
>Producción
Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]>
Clase 3: LinkedHashSet
Clase LinkedHashSet que se implementa en el marco de colecciones es una versión ordenada de HashSet que mantiene una Lista doblemente vinculada en todos los elementos. Cuando es necesario mantener el orden de iteración, se utiliza esta clase. Al iterar a través de un HashSet el orden es impredecible, mientras que un LinkedHashSet nos permite iterar a través de los elementos en el orden en que fueron insertados. Veamos cómo crear un objeto establecido usando esta clase.
Ejemplo
Java
// Java program to demonstrate the> // creation of Set object using> // the LinkedHashset class> import> java.util.*;> > class> GFG {> > > public> static> void> main(String[] args)> > {> > Set lh => new> LinkedHashSet();> > > // Adding elements into the LinkedHashSet> > // using add()> > lh.add(> 'India'> );> > lh.add(> 'Australia'> );> > lh.add(> 'South Africa'> );> > > // Adding the duplicate> > // element> > lh.add(> 'India'> );> > > // Displaying the LinkedHashSet> > System.out.println(lh);> > > // Removing items from LinkedHashSet> > // using remove()> > lh.remove(> 'Australia'> );> > System.out.println(> 'Set after removing '> > +> 'Australia:'> + lh);> > > // Iterating over linked hash set items> > System.out.println(> 'Iterating over set:'> );> > Iterator i = lh.iterator();> > while> (i.hasNext())> > System.out.println(i.next());> > }> }> |
>
>Producción
[India, Australia, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>
Clase 4: Conjunto de árboles
Clase TreeSet que se implementa en el marco de colecciones e implementación de la interfaz SortedSet y SortedSet extiende la interfaz Set. Se comporta como un conjunto simple con la excepción de que almacena elementos en un formato ordenado. TreeSet utiliza una estructura de datos de árbol para el almacenamiento. Los objetos se almacenan en orden ascendente. Pero podemos iterar en orden descendente usando el método TreeSet.descendingIterator(). Veamos cómo crear un objeto establecido usando esta clase.
Ejemplo
Java
marca de agua en word
// Java Program Demonstrating Creation of Set object> // Using the TreeSet class> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating a Set object and declaring it of String> > // type> > // with reference to TreeSet> > Set ts => new> TreeSet();> > > // Adding elements into the TreeSet> > // using add()> > ts.add(> 'India'> );> > ts.add(> 'Australia'> );> > ts.add(> 'South Africa'> );> > > // Adding the duplicate> > // element> > ts.add(> 'India'> );> > > // Displaying the TreeSet> > System.out.println(ts);> > > // Removing items from TreeSet> > // using remove()> > ts.remove(> 'Australia'> );> > System.out.println(> 'Set after removing '> > +> 'Australia:'> + ts);> > > // Iterating over Tree set items> > System.out.println(> 'Iterating over set:'> );> > Iterator i = ts.iterator();> > > while> (i.hasNext())> > System.out.println(i.next());> > }> }> |
>
>Producción
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>