Bienvenido a la parte algo confusa del uso de Java.
Hay dos tipos de mapas, SortedMap y Map (en realidad hay más, pero estoy simplificando). Todos los mapas son construcciones de pares de valores clave donde una determinada clave devuelve un cierto valor. Esa parte debería ser familiar, pero en un SortedMap las claves se ordenan de acuerdo con los objetos Key .compareTo, que puede sobrecargar e implementar usted mismo si así lo desea. Ninguno de los mapas admite claves nulas, y las claves duplicadas dan como resultado un golpeteo.
TreeMap es la implementación predeterminada de SortedMap; todas las claves se mantienen en un árbol, para que pueda obtener secciones o subsecciones de claves o valores (o ambos) más fácilmente.
- ¿Qué técnica general siguen los autores al escribir libros técnicos en LaTeX?
- ¿Cuál es la lista de MOOC que uno debe mirar en su licenciatura para aprender estructuras y algoritmos de datos C, C ++?
- ¿Cuál es la operación que tiene la constante más pequeña?
- ¿Cuál es el algoritmo de búsqueda de profundidad primero?
- ¿Cuáles son los usos de un puntero en una estructura de datos?
HashMap es la implementación predeterminada de Map, y sus claves nunca se ordenan, pero su funcionalidad de agregar y obtener es más rápida a altas cargas que TreeMap, porque con TreeMap su clasificación al insertar y recorrer el árbol al obtener. HashMap simplemente ajusta la clave y salta al índice correcto.
Para implementar esta estructura de datos usted mismo, simplemente construya un árbol equilibrado del tipo que más le convenga, luego use los nodos de ese árbol para almacenar sus claves y valores, y reequilibre los nodos del árbol de acuerdo con la función .compareTo de la clave cuando agrega o elimina nodos.
Esta es una respuesta bastante básica, si tiene una pregunta muy complicada, con gusto la responderé.