treeset java tutorial with programming examples
Este tutorial explica todo sobre la clase TreeSet, implementación, iteración, TreeSet Vs HashSet, ejemplos de Java TreeSet, etc.
TreeSet en Java implementa la interfaz Set (más específicamente, SortedSet). El TreeSet utiliza un TreeMap internamente para almacenar datos. De forma predeterminada, los objetos o elementos del TreeSet se almacenan según el orden natural en orden ascendente.
La clase TreeSet que implementa TreeSet en Java implementa la interfaz 'NavigableSet' y también hereda la clase AbstractSet.
=> Consulte aquí para ver los tutoriales de capacitación de la A a la Z de Java aquí.
Lo que vas a aprender:
TreeSet en Java
Tenga en cuenta que los elementos TreeSet también se pueden ordenar explícitamente proporcionando el Comparador personalizado en el momento de crear un objeto TreeSet utilizando el prototipo de constructor específico.
A continuación se presentan algunas de las características importantes de TreeSet:
- La clase TreeSet implementa la interfaz SortedSet. No permite elementos duplicados.
- La clase TreeSet no está sincronizada.
- TreeSet no conserva el orden de inserción, pero los elementos en TreeSet se ordenan según el orden natural.
- TreeSet se puede solicitar utilizando un comparador personalizado al crear un objeto TreeSet.
- TreeSet se utiliza normalmente para almacenar grandes cantidades de información ordenada de forma natural. Esto ayuda a un acceso fácil y rápido.
Declaración de clase TreeSet
Java proporciona una clase llamada 'TreeSet' que contiene la funcionalidad de la estructura de datos de TreeSet. La clase TreeSet es parte del paquete java.util.
Para incluir la clase TreeSet en el programa Java, debemos usar la declaración de importación como se indica a continuación:
|_+_|o
|_+_|Una declaración general de la clase TreeSet es:
|_+_|Como se ve en la declaración de clase, la clase TreeSet extiende AbstractSet e implementa interfaces NavigableSet, Cloneable y Serializable.
A continuación se proporciona una jerarquía de clases para la clase TreeSet:
Implementación interna
Sabemos que TreeSet implementa la interfaz NavigableSet y extiende la clase SortedSet.
Internamente, el constructor TreeSet se define de la siguiente manera:
|_+_|Como se ve en la definición de constructor anterior de TreeSet, se invoca un objeto TreeMap. Por lo tanto, internamente, es un objeto TreeMap que se implementa para un TreeSet. Por lo tanto, al agregar un elemento a TreeSet, se agrega una clave a TreeMap en la que las claves se ordenan de forma predeterminada.
Según Documentación de Oracle en TreeSet ,
'Un TreeSet es una implementación de NavigableSet basada en un TreeMap'.
Ejemplo de Java TreeSet
El siguiente programa Java muestra un ejemplo sencillo que demuestra TreeSet. En este programa, hemos definido un conjunto de árbol de colores simple. Le agregamos elementos y luego lo mostramos. Tenga en cuenta que los elementos se muestran según el orden natural.
|_+_|Producción:
Contenido de TreeSet:
Amarillo Azul Verde Rojo
Iterar a través de TreeSet
Para acceder a los elementos individuales de TreeSet, necesitamos iterar a través del TreeSet o, en otras palabras, atravesar el TreeSet.
Hacemos esto declarando un iterador para el TreeSet y luego usamos este iterador para acceder a cada elemento. Para esto, usamos el método next () de un iterador que devuelve el siguiente elemento en el TreeSet.
El siguiente programa Java demuestra el uso del Iterador para iterar a través de TreeSet.
|_+_|Producción:
TreeSet: [5, 10, 15, 20, 25]
TreeSet usando Iterator: 5, 10, 15, 20, 25,
sitio web para ver anime online gratis
Comparador TreeSet en Java
De forma predeterminada, el TreeSet está ordenado de forma natural. También podemos ordenar TreeSet en un orden personalizado definiendo una nueva clase de comparación. En esta clase de comparador, necesitamos anular el método 'comparar' para ordenar los elementos del TreeSet. Este objeto comparador se pasa luego al constructor TreeSet.
El siguiente programa Java muestra el uso de un Comparador para ordenar el TreeSet.
|_+_|Producción:
Conjunto de árboles: [Pune, Indore, Hyderabad, Bangaluru]
El programa anterior implementa una clase Comparator para ordenar el TreeSet dado alfabéticamente en orden inverso.
Lectura recomendada = >> Interfaz del comparador de Java
API TreeSet / Métodos y constructores
En esta sección, discutiremos la API de la clase TreeSet. Aquí discutiremos los constructores y métodos proporcionados por la clase TreeSet.
La clase TreeSet proporciona constructores sobrecargados para construir un objeto TreeSet.
Hemos tabularizado estos constructores de la siguiente manera:
Constructores
Prototipo de constructor | Descripción | |
---|---|---|
contiene | booleano contiene (Objeto o) | Comprueba si TreeSet contiene un elemento dado; verdadero si está presente. |
TreeSet () | Constructor predeterminado para crear un nuevo objeto TreeSet vacío. | |
TreeSet (Colección c) | Crea un nuevo objeto TreeSet que contiene los elementos de la colección c dada, ordenados según el orden natural. | |
TreeSet (Comparador comparador) | Construye un nuevo objeto TreeSet que está vacío y se ordenará según el comparador especificado. | |
TreeSet (SortedSet s) | Crea un nuevo objeto TreeSet que contiene elementos de sortedSet dados. |
Métodos
A continuación, tabularicemos los diversos métodos proporcionados por la clase TreeSet.
Método | Prototipo de método | Descripción |
---|---|---|
agregar | suma booleana (E e) | Agrega el elemento dado al TreeSet si aún no está allí. |
añadir todo | boolean addAll (Colección c) | Agrega todos los elementos de la colección c dada al conjunto. |
techo | E techo (E e) | Devuelve un elemento mayor o igual que e (elemento mínimo); o nulo si no hay ningún elemento presente. |
claro | vacío claro () | Elimina todos los elementos del TreeSet. |
clon | Clonar objeto () | Devuelve una copia superficial del objeto TreeSet. |
comparador | Comparador comparador () | Devuelve el comparador para TreeSet o nulo si se usa el orden natural. |
descendingIterator | Iterador descendingIterator () | Devuelve un iterador descendente sobre los elementos del TreeSet. |
descendingSet | NavigableSet descendingSet () | Devuelve una vista de los elementos del TreeSet en orden inverso. |
primero | E primero () | Devuelve el primer elemento o el más bajo del TreeSet. |
suelo | E piso (E e) | Devuelve el elemento que es menor o igual que el elemento dado e en el TreeSet. Devuelve nulo si no existe tal elemento. |
auriculares | SortedSet headSet (E toElement) | devuelve un conjunto de elementos que son estrictamente menores que el toElement dado |
NavigableSet headSet (E toElement, booleano inclusive) | Devuelve un conjunto de elementos que son iguales a (si inclusivo = verdadero) o menores que los dados aElement. | |
más alto | E mayor (E e) | Devuelve el elemento mínimo de este conjunto estrictamente mayor que el elemento dado, o nulo si no existe tal elemento. |
esta vacio | boolean isEmpty () | Comprueba si el TreeSet está vacío. Devuelve verdadero si está vacío. |
iterador | Iterador iterador () | Devuelve un iterador (en orden ascendente) para TreeSet. |
último | E último () | Devuelve el elemento más alto o el último del TreeSet. |
más bajo | E más bajo (E e) | Devuelve el elemento (elemento mayor) que es estrictamente menor que el elemento e dado en el TreeSet. |
pollFirst | E pollFirst () | Elimina y devuelve el primer elemento (el más bajo) del conjunto; null si el conjunto está vacío. |
pollLast | E pollLast () | Elimina y devuelve el último elemento (mayor) del conjunto; null si está vacío. |
retirar | booleano eliminar (Objeto o) | Elimina el elemento dado del conjunto. |
Talla | int tamaño () | Devuelve el tamaño o la cantidad de elementos presentes en el TreeSet. |
subconjunto | Subconjunto NavigableSet (E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) | Devuelve una vista de elementos que van de fromElement a toElement. |
Subconjunto SortedSet (E fromElement, E toElement) | Devuelve elementos de una vista que van desde fromElement (inclusive) hasta toElement (exclusivo). | |
tailSet | SortedSet tailSet (E fromElement) | Devuelve una vista que contiene elementos que son mayores o iguales que el elemento fromElement proporcionado. |
NavigableSet tailSet (E fromElement, booleano incluido) | Devuelve una vista de los elementos que son iguales a (si inclusivo es verdadero) o mayores que fromElement. |
TreeSet en Java 8
Tenga en cuenta que para TreeSet, no hay cambios importantes en la versión de Java 8. Todos los métodos y constructores funcionan en Java 8 y versiones posteriores.
Implementación de TreeSet en Java
El siguiente programa Java implementa la mayoría de los métodos TreeSet discutidos anteriormente.
|_+_|Producción:
Contenido del juego de árboles: 10 15 25 30 35
de techo (25): 25
suelo (25): 25
TreeSet contiene (15): verdadero
Tamaño del árbol: 5
TreeSet Primer elemento: 10
TreeSet Último elemento: 35
Elemento 30 eliminado de TreeSet
TreeSet después de eliminar (): 10 15 25 35
Tamaño del conjunto de árboles después de eliminar (): 4
Auriculares: [10, 15, 25]
Tamaño del conjunto de árboles después de borrar (): 0
En el programa anterior, definimos un objeto TreeSet y luego le agregamos elementos usando el método 'agregar'. A continuación, definimos una ArrayList. Luego agregamos elementos de ArrayList a TreeSet usando el método 'addAll'. Más adelante, demostramos varios métodos TreeSet como Iterator, techo, piso, primero, último, contiene, tamaño, está vacío, etc.
TreeSet Vs HashSet
Veamos algunas de las diferencias entre TreeSet y HashSet.
TreeSet | HashSet |
---|---|
Los elementos se ordenan según el orden natural. | Los elementos no están ordenados. |
Toma O (log N) tiempo para operaciones como insertar, eliminar y buscar, lo que lo hace más lento que TreeSet. | Lleva un tiempo constante para operaciones básicas como insertar, eliminar y buscar, lo que lo hace más rápido que TreeSet. |
No permite objetos nulos. | Permite objeto nulo. |
Utiliza el método compareTo () para comparar dos objetos. | Utiliza el método compare () y equals () para comparar dos objetos. |
Implementado internamente usando Navigable TreeMap. | Implementado internamente usando HashMap. |
Tiene una rica funcionalidad API que puede realizar varias manipulaciones. | La funcionalidad API de HashSet es bastante limitada. |
Preguntas frecuentes
P # 1) ¿Qué es un TreeSet?
Responder: TreeSet es una implementación de SortedSet que no permite valores duplicados. Los elementos del TreeSet se ordenan de forma predeterminada en orden ascendente.
Q #2) ¿Cómo se agregan elementos a TreeSet en Java?
Responder: La clase TreeSet proporciona un método de adición que se utiliza para agregar un elemento específico al TreeSet. También proporciona el método 'addAll'. Este método acepta cualquier otra colección como argumento y luego agrega todos los elementos de esta colección al TreeSet.
Q #3) ¿TreeSet es seguro para subprocesos?
Responder: No. TreeSet no es seguro para subprocesos. Por lo tanto, debemos cuidar cómo operamos TreeSet en un entorno de subprocesos múltiples.
Q #4) ¿Puede TreeSet tener duplicados?
Responder: No. TreeSet no permite duplicados.
Q #5)¿TreeSet permite nulos en Java?
Responder: Si. Podemos tener elementos nulos en TreeSet.
Conclusión
Esto completa nuestro tutorial sobre TreeSet. TreeSet es una implementación de SortedSet que no permite duplicados pero permite valores nulos. Los elementos del TreeSet se ordenan de forma predeterminada según el orden natural en orden ascendente.
Hemos visto los conceptos básicos de la clase TreeSet junto con su declaración y varios constructores y métodos.
En nuestros tutoriales posteriores, discutimos las clases de colección de Java restantes.
=> Tenga cuidado con la serie de capacitación simple de Java aquí.
Lectura recomendada
- Árbol de búsqueda binaria en Java: implementación y ejemplos de código
- TreeMap en Java - Tutorial con ejemplos de Java TreeMap
- ¿Qué es Java Vector | Tutorial de clase de vector de Java con ejemplos
- Tutorial de la clase Java Scanner con ejemplos
- Tutorial de clase de matriz de Java - clase java.util.Arrays 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