Otros han señalado por qué no funcionará. Así que solo agregaré el apéndice de que la ganancia sería mínima de todos modos.
Cuando compara dos cadenas en Java, la función String equals comprueba primero si son dos referencias al mismo objeto. Si es así, inmediatamente devuelve verdadero. Luego verifica si las longitudes son iguales. Si no, devuelve falso. Solo entonces comienza a comparar personaje por personaje.
Si está manipulando datos en la memoria, la comparación del mismo objeto puede manejar rápidamente el "mismo" caso, y eso es una comparación rápida, umm, de 4 bytes, creo. (Alguien me corrige si tengo la longitud de un objeto manejar mal.)
Para la mayoría de las cuerdas desiguales, apostaría a que la longitud de comparar rápidamente los encuentra no iguales. Si compara dos nombres de cosas (clientes, ciudades, productos, lo que sea), generalmente tendrán una duración desigual. Por lo tanto, una comparación simple simple los descarta rápidamente.
El peor caso para el rendimiento va a ser dos largas, idénticas, pero no las mismas cadenas de objetos. Luego tiene que hacer el objeto manejar comparar, falso, seguir comprobando. La duración se compara, es verdad, sigue comprobando. Luego, carácter por personaje a través de toda la longitud de la cadena para verificar que sí, de hecho, son iguales hasta el final.
Su respuesta se encuentra en la documentación de los métodos 'equals()' y 'hashcode()'. – skaffman
Y con respecto a la eficiencia: observe de cerca las cadenas que está comparando. Estaré dispuesto a apostar que> 50% difieren en su primer personaje, y> 66% difieren en sus primeros dos personajes. Entonces realmente tienes una comparación muy eficiente versus hashCode(), que tiene que recorrer toda la cadena. Además, si usa cadenas en el conjunto constante, equals() primero verifica la identidad, lo que los eliminará de inmediato. – kdgregory
@kdgregory Es cierto que el peor de los casos es que las cadenas realmente coincidan, lo que también podría ser el escenario más común. También has respondido a mi pregunta subyacente sobre el rendimiento de la secuencia, cualquier ganancia que haya hecho un código hash agrupado ya se está realizando al realizar una verificación de instancia. ¡Aclamaciones! –