Manuel de développement Alibaba Java——Comparateur
PHPz
PHPz 2017-05-27 17:40:39
0
3
968

L'image ci-dessus est la description dans "Alibaba Java Development Manual v1.2.0". Voici un contre-exemple, disant que la situation d'égalité n'est pas gérée, mais je pense :

o1.getId() > o2.getId()

N'est-ce pas l'inverse

o1.getId() <= o2.getId()

Je l'utilise habituellement comme ça. Pourriez-vous s'il vous plaît m'aider à expliquer la technique de cet endroit ? quelle est la raison?

PHPz
PHPz

学习是最好的投资!

répondre à tous(3)
给我你的怀抱

Après une meilleure compréhension, la cause première du problème est que l'implémentation du tri du JDK7 a été modifiée en TimSort. Voir cet article pour plus de détails.
http://blog.2baxb.me/archives...

Quand j’ai répondu pour la première fois, je n’ai pas bien compris l’intention de l’auteur en posant la question, j’ai donc répondu un peu précipitamment et je m’en excuse.
Le contenu de la réponse précédente est divisé hors ligne. Parce qu'il y a une discussion avec @wanghaa sur l'ancienne réponse dans les commentaires de réponse, elle est conservée. Merci @wanghaa de m'avoir fait prendre conscience du problème.


public static void main(String[] args) {
    int i = 1;
    int j = 1;
    int ret = i > j ? 1 : -1;
    System.out.println(ret);
}

Le code ci-dessus affichera -1. Si les deux valeurs comparées sont égales, 0 doit être renvoyé. Renvoyer -1 est définitivement faux, la situation d'égalité doit donc être traitée séparément.

黄舟

Il faut juger qu'il est égal à 0

世界只因有你

Après la discussion de @gemoji, je comprends enfin. Pour résumer :
Dans les versions antérieures à JDK7, tout comme ce qui est dit dans Effective Java, Comparator n'est pas obligatoire pour implémenter les égaux
Dans les versions postérieures à JDK7, TimSort est utilisé pour le tri. . L'algorithme, résultant en Comparator doit implémenter égal à.



<<Version chinoise Java efficace>> Il contient une explication détaillée. En fait, il s'agit d'une forte suggestion qui détruit en fait la transitivité
et la symétrie des égaux et de la comparaison

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!