EnumSet y TreeSet son las clases definidas dentro del marco de la colección . Pero existen pocas diferencias entre ellos. En este artículo, hemos tratado de cubrir todas estas diferencias entre ellos.
1. EnumSet : EnumSet es una implementación especializada de la interfaz Set para tipos de enumeración . Extiende AbstractSet e implementa la interfaz Set en Java. Algunos puntos importantes de EnumSet son los siguientes:
- La clase EnumSet es miembro de Java Collections Framework y no está sincronizada.
- Todos los elementos de un EnumSet deben provenir de un solo tipo de enumeración que se especifica cuando el conjunto se crea de forma explícita o implícita.
- EnumSet es mucho más rápido que HashSet .
- EnumSet no permite insertar un objeto nulo si intentamos insertar el objeto nulo, arrojará NullPointerException .
- Utiliza un iterador a prueba de fallas , por lo que no generará ConcurrentModificationException si la colección se modifica durante la iteración.
Ejemplo:
Java
// Java program to demonstrate // the EnumSet import java.util.*; class enumSetExample { enum Colors { Red, Pink, Grey, Yellow, Green } public static void main(String args[]) { // Creating an EnumSet EnumSet<Colors> colors = EnumSet.of(Colors.Pink, Colors.Green); Iterator<Colors> itr = colors.iterator(); // Iterate and print elements to // the console System.out.println("EnumSet : "); while (itr.hasNext()) { System.out.println(itr.next()); } } }
Producción
EnumSet : Pink Green
2. TreeSet : TreeSet es una clase que implementa el comparador de interfaz SortedSet Interfaz NavigableSet Clase AbstractSet
Ejemplo:
Java
// Java code to demonstrate // the working of TreeSet import java.util.*; class TreeSetDemo { public static void main(String[] args) { // Creating an empty TreeSet TreeSet<String> ts = new TreeSet<String>(); // Elements are added using add() method ts.add("Geek"); ts.add("For"); ts.add("Geeks"); ts.add("welcomes"); ts.add("you"); System.out.println("Tree Set is " + ts); String check = "welcomes"; // Check if the above string exists in // the treeset or not System.out.println("Contains : " + check + " " + ts.contains(check)); // Print the first element in // the TreeSet System.out.println("First Value " + ts.first()); // Print the last element in // the TreeSet System.out.println("Last Value " + ts.last()); String value = "Geek"; // Find the values just greater // and smaller than the above string System.out.println("Higher " + ts.higher(value)); System.out.println("Lower " + ts.lower(value)); } }
Producción
Tree Set is [For, Geek, Geeks, welcomes, you] Contains : welcomes true First Value For Last Value you Higher Geeks Lower For
PROPIEDADES | EnumSet | ÁrbolConjunto |
---|---|---|
Básico | EnumSet es una implementación especializada de la interfaz Set. | TreeSet es una clase que implementa la interfaz SortedSet en Java. |
Estructura de datos | Se representa internamente como un BitVector. | Se representa internamente como un árbol rojo-negro. |
Clasificación | Ordena los elementos según el orden natural. | Ordena los elementos según el orden de clasificación. |
iterador | El iterador EnumSet es débilmente consistente. | El iterador TreeSet es Fail-fast. |
Mejor elección | EnumSet es la mejor opción para almacenar elementos de tipo de enumeración. | TreeSet sirve como una excelente opción para almacenar grandes cantidades de información ordenada a la que se supone que se debe acceder rápidamente debido a su acceso y tiempo de recuperación más rápidos. |
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA