Respuesta corta: Probablemente no funcionará.
Respuesta honesta: Todo depende.
Respuesta más larga: El código hash no es el problema, es la naturaleza de las comparaciones iguales en coma flotante. Como señalan Nalandial y los comentaristas en su publicación, en última instancia, cualquier partida contra una tabla hash termina usando iguales para elegir el valor correcto.
Entonces la pregunta es, ¿sus dobles se generan de tal manera que usted sabe que los iguales realmente significa iguales? Si lee o calcula un valor, lo almacena en la tabla hash, y luego lee o calcula el valor usando exactamente el mismo cálculo, entonces Double.equals funcionará. Pero de lo contrario no es confiable: 1.2 + 2.3 no es necesariamente igual a 3.5, podría equivaler a 3.4999995 o lo que sea. (No es un ejemplo real, me lo inventé, pero ese es el tipo de cosas que suceden). Puedes comparar flotaciones y dobles razonablemente confiables por menos o mayor, pero no por iguales.
Al igual que Jay y Carlos dice en sus respuestas, es un problema igual y no un código hash. –