Cordes de Java: compareTo() vs est égale à()

Lors du test de l'égalité de Strings'en Java, j'ai toujours utilisé equals() parce que pour moi, cela semble être la méthode la plus naturelle pour elle. Après tout, son nom en dit déjà ce qu'il est destiné à faire. Cependant, un de mes collègues m'a dit récemment avait été enseigné à l'utilisation compareTo() == 0 au lieu de equals(). C'est contre nature (comme compareTo() est destiné à fournir une commande et pas la comparaison pour l'égalité) et même un peu dangereux (parce que compareTo() == 0 n'implique pas nécessairement l'égalité dans tous les cas, même si je sais qu'elle le fait pour String's) pour moi.

Il ne savait pas pourquoi il a été enseigné à l'utilisation compareTo() au lieu de equals() pour String's, et je pourrais aussi ne pas trouver une raison quelconque. Est-ce vraiment une question de goût personnel, ou est-il une raison pour l'une ou l'autre méthode?

  • Strictement parlant à un micro-niveau d'optimisation, que nous ne devrions jamais prématurément de prendre la parole à .equalsIgnoreCase() est le plus rapide en comparaison, si c'est approprié, sinon .equals() est ce que vous voulez.