Qu'est-ce qui détermine l'ordre croissant ou décroissant dans Comparator / Comparable collection class?

Je comprends, nous pouvons trier ou de l'ordre des objets, stockée dans la Collection que par notre exigence(s).

Alors que je reçois une compréhension profonde, je ne suis pas convaincu par le fait que l'ordre croissant et l'ordre décroissant de l'arrangement est réalisé par (a - b) ->ascendant ou (b - a) -> en descendant, où "a" et "b" sont des membres de la classe, nous avons choisi de comparer.

Exemple:

public int compareTo(Student s) {
     return this.grade - s.grade; //ascending order 
    //return s.grade - this.grade; //descending order
}

Ce qui est la logique derrière la commande objet éléments? comment "(ce.grade - s.grade)" si positif 1 se déplace ".grade" à l'avant et met.grade" suivant dans l'ordre, pourquoi pas l'inverse? Qui valide le comparer le résultat (+1, -1, 0) et les met dans l'ordre croissant ou décroissant, respectivement, est-il une documentation qui décrit le fonctionnement interne de cette partie?

public class Student implements Comparable <Student>{
    String name;
    int grade;
    public Student(String name, int grade) {
        this.name = name;
        this.grade = grade;
    }
    public int compareTo(Student s) {
         return this.grade - s.grade; //ascending order 
        //return s.grade - this.grade; //descending order
    }
    public String toString() {
        return this.name + ", " + this.grade;
    }
}

Merci de partager, merci beaucoup!


Edit:

- Je obtenir la Java docs, ma question est: est-ce

sort these grades (13, 2)

Case ascending -> return this.grade - s.grade;

picture in my mind: 
compare (13, 2) , (13 - 2) > 0 so move 2 to front.
result -> 2, 13
------
Case descending -> return s.grade - this.grade;

picture in my mind: 
compare (2, 13) , (2 - 13) < 0 so move 13 to front.

result -> 13, 2

"Comment est-ce possible?" a ma question d'origine. J'ai lu les docs, ne pouvait toujours pas comprendre.

source d'informationauteur David Prun