Si tenemos un conjunto muy grande de objetos comparables, ¿qué implementación de la tabla de símbolos es empíricamente más rápida: una tabla hash o un árbol de búsqueda binario balanceado? ¿Por qué?

¿Qué desea hacer con ellos? ¿Desea simplemente agregarlos o hacer que se ordenen mientras agrega? Si es así,

Diría que el árbol de búsqueda binaria (TreeSet es una implementación perfecta del árbol de búsqueda binaria y también treeMap). Dado que los objetos están implementando una interfaz comparable (usted ha mencionado que estos son objetos comparables), se ordenarán automáticamente en TreeSet cuando intente agregar . Proporciona una clasificación natural de los elementos. Utiliza métodos igual, compare y compareTo para determinar el orden de clasificación

Aquí, en su caso, treeMap no es necesario ya que tienen pares clave / valor.

Y, por cierto, no es necesario usar hashtable cuando solo tiene que agregar objetos hashSet sería suficiente. Sin embargo, si desea agregar objetos en hashtable con algunos valores ficticios, continúe. Cuando intente con hashTable (también para hashset) insertan los objetos de manera aleatoria. Su complejidad temporal es O (1) en el mejor de los casos y O (n) en el peor de los casos. Y de hecho, una vez que se agregan en Hashtable, debe llamar a collection.Sort () para ordenarlos. como TreeSet la complejidad del tiempo es O (log n).

Pero si simplemente desea agregar los elementos, HashSet es mejor. generalmente es más rápido agregar elementos al HashSet y luego convertir la colección a un TreeSet para un recorrido ordenado sin duplicados. Por favor aclare su pregunta 🙂