set interface java
Este tutorial de conjuntos de Java explica todo sobre la interfaz de conjuntos en Java. Cubre cómo iterar a través de un conjunto, establecer métodos, implementación, establecer en lista, etc.
Set in Java es una interfaz que forma parte de Java Collection Framework e implementa la interfaz de Collection. Una colección de conjuntos proporciona las características de un conjunto matemático.
Un conjunto se puede definir como una colección de objetos desordenados y no puede contener valores duplicados. Como la interfaz de conjunto hereda la interfaz de Colección, implementa todos los métodos de la interfaz de Colección.
=> Consulte la guía de formación de Java perfecta aquí.
Lo que vas a aprender:
Conjunto de Java
La interfaz establecida se implementa mediante clases e interfaces, como se muestra en el diagrama siguiente.
Como se muestra en el diagrama anterior, la interfaz Set es heredada por las clases, HashSet, TreeSet, LinkedHashSet y EnumSet. Las interfaces SortedSet y NavigableSet también implementan la interfaz Set.
Algunas de las características importantes de la interfaz Set se detallan a continuación:
- La interfaz establecida es parte del marco de colecciones de Java.
- La interfaz establecida permite valores únicos.
- Puede tener como máximo un valor nulo.
- Java 8 proporciona un método predeterminado para la interfaz establecida: Spliterator.
- La interfaz del conjunto no admite los índices de los elementos.
- La interfaz configurada admite genéricos.
¿Cómo crear un set?
La interfaz configurada en Java es parte del paquete java.util. Para incluir una interfaz establecida en el programa, tenemos que usar una de las siguientes declaraciones de importación.
|_+_|o
|_+_|Una vez que la funcionalidad de la interfaz establecida está incluida en el programa, podemos crear un conjunto en Java usando cualquiera de las clases de conjunto (clases que implementan la interfaz de conjunto) como se muestra a continuación.
|_+_|Luego, podemos inicializar este objeto de conjunto agregando algunos elementos usando el método add.
|_+_|Establecer el ejemplo en Java
Implementemos un ejemplo simple en Java para demostrar la interfaz Set.
|_+_|Producción:
Contenido del conjunto: (Rojo, Cian, Azul, Magenta, Verde)
Conjunto ordenado después de convertir a TreeSet: (Azul, Cian, Verde, Magenta, Rojo)
Iterar a través del conjunto en Java
Podemos acceder a cada uno de los elementos de un Conjunto utilizando varios enfoques. Discutiremos estos enfoques a continuación.
Utilizando Iterator
Podemos definir un iterador para atravesar un objeto establecido. Con este iterador podemos acceder a cada elemento del Conjunto y procesarlo.
El siguiente programa Java demuestra la iteración a través del conjunto e imprime los elementos del conjunto.
|_+_|Producción:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Valores usando Iterator:
Bangalore Pune Calcuta Hyderabad
Uso del bucle para cada uno
También podemos usar el bucle for-each para acceder a los elementos de un conjunto. Aquí iteramos a través del conjunto en un bucle.
El siguiente programa demuestra esto.
|_+_|Producción:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Configure los contenidos usando forEach loop:
Bangalore Pune Calcuta Hyderabad
Utilizando Java 8 Stream API
También podemos iterar y acceder a elementos del conjunto utilizando la API de flujo de Java 8. En esto, generamos una secuencia a partir de un conjunto y luego iteramos a través de la secuencia usando el bucle forEach.
El programa Java a continuación demuestra la iteración del conjunto utilizando la API de flujo de Java 8.
|_+_|Producción:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Configure los contenidos usando la API de flujo de Java 8:
Bangalore Pune Calcuta Hyderabad
Configurar API de métodos
A continuación se muestran los métodos admitidos por la interfaz Set. Estos métodos realizan operaciones básicas como agregar, eliminar, contiene, etc. junto con las otras operaciones.
cómo escribir casos de prueba manuales con un ejemplo
Método | Prototipo de método | Descripción |
---|---|---|
esta vacio | boolean isEmpty () | Comprueba si el conjunto está vacío |
agregar | suma booleana (E e) | Agrega el elemento e al conjunto si no está presente en el conjunto |
añadir todo | boolean addAll (Colección c) | Agrega el elemento de la colección c al conjunto. |
retirar | boolean eliminar (Objeto o) | Elimina el elemento dado o del conjunto. |
eliminar todo | boolean removeAll (Colección c) | Elimina los elementos presentes en la colección c dada del conjunto. |
contiene | booleano contiene (Objeto o) | Comprueba si el elemento dado o está presente en el conjunto. Devuelve verdadero si es así. |
contiene todo | boolean containsAll (Colección c) | Comprueba si el conjunto contiene todos los elementos de la colección especificada; Devuelve verdadero si es así. |
retener todo | boolean keepAll (Colección c) | El conjunto conserva todos los elementos de la colección dada c |
claro | vacío claro () | Limpia el conjunto eliminando todos los elementos del conjunto |
iterador | Iterador iterador () | Se utiliza para obtener el iterador del conjunto. |
toArray | Objeto () toArray () | Convierte el conjunto en una representación de matriz que contiene todos los elementos del conjunto. |
Talla | int tamaño () | Devuelve el número total de elementos o el tamaño del conjunto. |
código hash | código hash () | Devuelve hashCode del conjunto. |
Ahora implementemos algunos de los métodos que discutimos anteriormente en un programa Java. También veremos las siguientes operaciones específicas que involucran dos conjuntos.
Establecer implementación en Java
Intersección: Conservamos valores comunes entre los dos conjuntos. Realizamos una intersección utilizando el retener todo método.
Unión: Aquí combinamos los dos conjuntos. Esto se hace con el añadir todo método.
Diferencia: Esta operación elimina un conjunto del otro. Esta operación se realiza utilizando el eliminar todo método.
|_+_|Producción:
Juego de originales (numSet): (1, 2, 3, 4, 20, 6, 7, 8, 9, 11, 12, 13)
numSet Tamaño: 12
Contenido de OddSet: (1, 3, 5, 7, 9)
numSet contiene el elemento 2: verdadero
numSet contiene la colección oddset: false
Intersección de numSet y oddSet: (1, 3, 7, 9)
Diferencia de numSet y oddSet: (2, 4, 6, 8, 11, 12, 13, 20)
Unión de numSet y oddSet: (1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 20)
preguntas y respuestas de entrevistas de prueba de servicios web
Establecer en matriz
Hemos visto el método 'toArray' en la sección anterior sobre métodos. Este método toArray se puede utilizar para convertir el conjunto en una matriz.
El siguiente programa Java convierte el conjunto en una matriz.
|_+_|Producción:
El contenido del conjunto: (rojo, cian, azul, magenta, verde)
Conjunto convertido a matriz: (Rojo, Cian, Azul, Magenta, Verde)
Matriz para configurar
Para convertir una matriz en un conjunto en Java, podemos seguir dos enfoques como se muestra a continuación.
#1) Podemos convertir el Array en una Lista usando el método asList y luego pasar esta lista como argumento al constructor del conjunto. Esto da como resultado que el objeto establecido se cree con los elementos de la matriz.
#2) Alternativamente, podemos usar el método Collections.addAll para copiar los elementos de la matriz al objeto set.
El programa Java a continuación implementa ambos enfoques para convertir una matriz en un conjunto.
|_+_|Producción:
La matriz de entrada: (10, 50, 40, 20, 60, 30, 80, 70)
Matriz convertida para establecer mediante asList: (80, 50, 20, 70, 40, 10, 60, 30)
Matriz convertida a un conjunto usando Collections.addAll: (80, 50, 20, 70, 40, 10, 60, 30)
Establecer en lista
Para convertir un conjunto en una lista en Java, podemos usar el método 'addAll' de la clase list. Este método copia el contenido del conjunto o cualquier colección proporcionada como argumento a la lista que invoca el método addAll.
El siguiente programa Java convierte el conjunto en una ArrayList.
|_+_|Producción:
El contenido del conjunto: (cuatro, uno, dos, tres, cinco)
ArrayList del conjunto: (cuatro, uno, dos, tres, cinco)
Lista para configurar
Para convertir la lista dada como ArrayList en un conjunto en Java, pasamos el objeto de la lista como argumento al constructor del conjunto.
El siguiente programa Java implementa esta conversión.
|_+_|Producción:
ArrayList: (uno, dos, tres, cuatro, cinco)
El conjunto obtenido de ArrayList: (cuatro, uno, dos, tres, cinco)
Ordenar un conjunto en Java
La colección Set en Java no tiene un método directo de clasificación. Por lo tanto, debemos seguir algunos enfoques indirectos para clasificar u ordenar los contenidos del objeto conjunto. Sin embargo, existe una excepción en caso de que el objeto establecido sea un TreeSet.
El objeto TreeSet por defecto proporciona el conjunto ordenado. Por lo tanto, si estamos interesados en el conjunto ordenado de elementos, deberíamos elegir TreeSet. Para HashSet o objetos LinkedHashSet, podemos convertir el conjunto a List. Ordene la lista usando el método Collections.sort () y luego convierta la lista de nuevo al conjunto.
Este enfoque se muestra en el siguiente programa Java.
|_+_|Producción:
Conjunto sin clasificar: (4, 8, 6, 2, 12, 10, 62, 40, 36)
Conjunto ordenado: (2, 4, 6, 8, 10, 12, 36, 40, 62)
Lista Vs Conjunto en Java
Analicemos algunas de las diferencias entre una lista y un conjunto.
Lista | Colocar |
---|---|
Se permiten valores nulos. | Solo se permite un valor nulo. |
Implementa la interfaz de lista. | Implementa la interfaz Set. |
Contiene una clase heredada, Vector. | No hay clases heredadas. |
ArrayList, LinkedList son implementaciones de interfaz de lista. | HashSet, TreeSet, LinkedHashSet son implementaciones de Set. |
Una secuencia ordenada de elementos. | Una colección desordenada de elementos distintos. |
Permite duplicados. | No se permiten duplicados. |
Capaz de acceder a elementos según la posición del elemento. | Sin acceso posicional. |
Nuevos métodos definidos en una interfaz List. | No se han definido nuevos métodos en la interfaz Set. Los métodos de interfaz de colección deben usarse con las subclases Set. |
Se puede recorrer hacia adelante y hacia atrás usando ListIterator. | Solo se puede atravesar en la dirección de avance con Iterator. |
Preguntas frecuentes
P # 1) ¿Qué es un conjunto en Java?
Responder: Un conjunto es una colección desordenada de elementos únicos y típicamente modela el concepto de Conjunto en matemáticas.
Set es una interfaz que amplía la interfaz de Colección. Contiene los métodos que hereda de la interfaz Collection. La interfaz configurada solo agrega una restricción, es decir, no se deben permitir duplicados.
Q #2)¿El conjunto está ordenado en Java?
Responder: No. Java Set no está ordenado. Tampoco proporciona acceso posicional.
Q #3)¿Puede un conjunto contener duplicados?
Responder: Un conjunto es una colección de elementos únicos, no puede tener duplicados.
Q #4)¿Java Set es iterable?
Responder: Si. La interfaz de conjunto implementa una interfaz Iterable y, por lo tanto, el conjunto se puede recorrer o iterar utilizando un bucle forEach.
Q #5)¿Se permite NULL en el set?
Responder: Un conjunto permite un valor nulo, pero como máximo se permite un valor nulo en implementaciones de conjuntos como HashSet y LinkedHashSet. En el caso de TreeSet, lanza una excepción de tiempo de ejecución si se especifica un valor nulo.
Conclusión
En este tutorial, hemos discutido los conceptos generales y la implementación relacionados con la interfaz Set en Java.
La interfaz establecida no tiene ningún método nuevo definido, pero utiliza los métodos de la interfaz del recopilador y solo agrega implementación para prohibir valores duplicados. El conjunto permite como máximo un valor nulo.
En nuestros tutoriales posteriores, discutiremos implementaciones específicas de la interfaz Set como HashSet y TreeSet.
=> Visite aquí para aprender Java desde cero.
Lectura recomendada
- Tutorial de reflexión de Java con ejemplos
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Tutorial del método Java String contains () con ejemplos
- Matriz irregular en Java - Tutorial con ejemplos
- Tutorial de clase de escáner de Java con ejemplos
- Tutorial de longitud de matriz de Java con ejemplos de código
- Tutorial de cadenas de Java | Métodos de cadena de Java con ejemplos
- ¿Qué es Java Vector | Tutorial de clase de vector de Java con ejemplos