Cuando se prueba la igualdad de String
en Java siempre he usado equals()
porque para mí este parece ser el método más natural para ello. Después de todo, su nombre ya dice lo que está destinado a hacer. Sin embargo, un colega mío me dijo recientemente que se le había enseñado a usar compareTo() == 0
en lugar de equals()
. Esto se siente antinatural (como compareTo()
está destinado a proporcionar un pedido y no comparar para la igualdad) e incluso algo peligroso (porque compareTo() == 0
no implica necesariamente la igualdad en todos los casos, aunque sé que lo hace para String
's) para mí.Java Strings: compareTo() vs equals()
No sabía por qué le enseñaron a usar compareTo()
en lugar de equals()
para String
, y tampoco pude encontrar ningún motivo. ¿Es realmente una cuestión de gusto personal, o hay alguna razón real para cualquiera de los métodos?
Estrictamente hablando a un nivel micro-optimización, que nunca debemos hablar prematuramente a, '.equalsIgnoreCase()' es la comparación más rápido si es apropiado, de lo contrario '.equals()' es lo que quieres –