Objects.hash () vs Objects.hashCode (), se necesita aclaración

en Java 7 tenemos

o.hashCode();
Objects.hashCode(o);

    Objects.hash(o);

Los primeros 2 son aproximadamente iguales con la comprobación de punto nulo, pero ¿cuál es el último?

Cuando se proporciona una única referencia de objeto, el valor devuelto no es igual al código hash de esa referencia de objeto.

¿Porqué es eso? Quiero decir, no necesitamos 3 métodos que hagan lo mismo, lo entiendo, pero ¿por qué necesitamosObjects.hash() ¿en absoluto? ¿Cuándo elegirías usar uno contra otro?

Respuestas a la pregunta(3)

Su respuesta a la pregunta