Tenemos TreeSet, TreeMap pero no TreeList en la colección de Java. ¿Por qué?


Mejor respuesta

Piense en las diferencias entre una Lista, un Mapa y un Conjunto.

Un mapa es una estructura que le permite buscar cosas usando una clave. Cuando diseñas para búsquedas, te das cuenta de que hay muchas comparaciones de claves y las búsquedas deben ser rápidas. Un árbol acelera el proceso de comparación de claves al organizar las claves dentro de las ramas; esto reduce el número de comparaciones de claves que

En un conjunto no hay elementos duplicados. Por lo tanto, cada vez que agrega un elemento, debe compararlo con los elementos existentes para ver si es un duplicado. Ahora ha vuelto al mismo problema que el mapa, por lo que utiliza un árbol para organizar sus elementos y reducir las comparaciones.

Una lista solo tiene orden, por lo tanto, una lista se puede diseñar fácilmente de modo que no lo haga » No se requieren comparaciones para obtener el elemento siguiente (o posiblemente el anterior) en el orden de la Lista.

Por lo tanto, si bien un árbol puede ayudarlo a hacer un mejor mapa o conjunto, realmente no puede ayudarlo a hacer una mejor lista .

Si está hablando de una lista ordenada , donde los elementos se insertan en la lista en orden de clasificación, ahora está de vuelta a las comparaciones para ordenar de modo que el árbol pueda ayudar a hacer una lista ordenada.

Respuesta

Bueno, una lista es una lista ordenada colección, lo que significa que debe tener la capacidad de acceder aleatoriamente al elemento i. Si la colección baraja internamente los elementos, el orden de inserción no será el mismo que el orden de los elementos en la estructura de datos interna. Por lo tanto, ya no puede confiar en el acceso basado en índices. Por lo tanto, Sun no proporcionó una clase SortedList o TreeList. Puede lograr lo mismo usando Collections.sort (..)

Apache commons-collections proporciona una clase TreeList ( TreeList (Commons Collections 3.2.1 API) ) pero no es una lista ordenada y se llama así porque usa una estructura de datos de árbol para almacenar los elementos internamente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *