Estructuras de datos que pueden asignar un rango de claves a un valor

Estoy tratando de encontrar una estructura de datos que tome un valor particular de un rango de valores y lo asigne a una clave.

Por ejemplo, tengo las siguientes condiciones:

Del 1 al 2.9, quiero mapearlo a A.De 4 a 6, quiero mapearlo a B.De 6.5 a 10, quiero mapearlo a C.

Tengo un valor de 5 y me gustaría asignarlo a una clave. Entonces, basado en las condiciones anteriores, debería asignarlo a B.

¿Hay alguna estructura de datos en Java que alguien pueda recomendarme para resolver el problema?

Actualmente estoy usando una tabla hash que solo puede asignar un valor a una clave. Intenté asignar el rango de valores a un valor particular que existe en la tabla hash. Sin embargo, me quedé atascado en la asignación del rango de valores a un valor particular. Así que ahora estoy tratando de hacer otra forma de asignar los rangos de valores a una clave. ¿Alguien tiene alguna idea de cómo puedo resolver este problema?

EDITAR:

Gracias a Martin Ellis, decidí usar TreeMap para resolver el problema.

Respuestas a la pregunta(7)

Su respuesta a la pregunta