Comparació d'objectes
Comparables
Una classe és comparable si permet que les seves instàncies puguin ser comparades per poder ordenar-les entre sí. Totes les classes embolcall dels tipus primitius ho són (String, Integer, Double...). Les classes comparables implementen la interfície Comparable<T>.
La interfície té només un mètode:
int compareTo(T o)
El valor retornat pot ser:
- negatiu, si aquest objecte és menor que o.
- 0, si els dos són iguals.
- positiu, si aquest objecte és major que o.
Les claus de la implementació TreeMap i els objectes d'un TreeSet han de ser comparables. Això permet poder navegar-los segons el seu ordre.
Comparadors
Els comparadors permeten comparar dos objectes d'un tipus T per poder ordenar-los. Són objectes que implementen la interfície Comparator<T>.
La interfície té només un mètode:
int compare(T o1, T o2)
El valor retornat pot ser:
- negatiu, si o1 és menor que o2.
- 0, si els dos són iguals.
- positiu, si o1 és major que o2.
Alguns algorismes permeten utilitzar comparadors per ordenar col·leccions (veure la secció Algorismes). En general, és millor comparar fent la classe comparable, però si no podem o volem modificar el seu codi, podem crear un comparador.