Java: Jak działa compare?

ostatnio natrafiłem na implementacje Compare Stringów. Fajnie zobaczyć jak działa. W skrócie: Porównuje konkretne znaki Stringa i zwraca różnice w tablicy ascii, czyli int.

Jeżeli zwracany int = 0, to znaczy, że są równe. Dla każdego innego nie są równe. Oto implementacja:



 public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;

    int k = 0;
    while (k < lim) {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) {
            return c1 - c2;
        }
        k++;
    }
    return len1 - len2;
 }


Fajne, nie prawdasz? Jedyne co nie było dla mnie zrozumiałem, to skąd się bierze value? A no stąd, że compare jest wywoływane na czymś, i to jest wartość tego czegoś.

A, ze nie zgłasza błędu, to znaczy, że pewnie jakiś rodzic ma to zadeklarowane - pewnie jakaś klasa abstrakcyjna, albo inny interfejs - i dlatego sobie komfortowo to pobiera .


Komentarze

Popularne posty z tego bloga

IntelliJ: zmiana rozmiaru czcionki scrollem

ThunderBird: jak zrobić professional stopkę