next up previous contents index
suivant: 6.5 Itérations monter: 6. Collections précédent: 6.3 Réalisations d'une collection   Table des matières   Index


6.4 Les relations d'ordre

Plusieurs structures de données (notamment SortedSet et SortedMap) et algorithmes sur celles-ci (tri d'une collection ou d'un tableau, recherche binaire dans un tableau trié) supposent que leurs éléments peuvent être comparés par une relation d'ordre. Java exprime cette hypothèse en demandant que la classe des éléments réalise l'interface Comparable ; c'est le cas d'un certain nombre de classes usuelles, dont les éléments sont comparables par un ordre dit naturel, par exemple : Byte, Short, Integer, Long, Float, Double, BigInteger, BigDecimal (ordre numérique), Character (ordre alphabétique), File (ordre lexicographique sur le chemin d'accès), String (ordre lexicographique), Date (ordre chronologique).

Rappelons que l'interface Comparable déclare une méthode int compareTo(Object o), qui retourne un entier $<0$, nul ou $>0$ selon que l'objet auquel elle est appliquée précède, est égal ou suit o selon l'ordre naturel. L'interface Comparator, quant à elle, déclare une fonction int compare(Object o1, Object o2) qui retourne un entier $<0$, nul ou $>0$ selon que o1 précède, est égal ou suit o2, selon une relation d'ordre.

On peut alors créer une instance d'un type réalisant Comparator, et la passer en argument à certaines méthodes qui l'utilisent, par exemple la fonction de tri Collections.sort.


next up previous contents index
suivant: 6.5 Itérations monter: 6. Collections précédent: 6.3 Réalisations d'une collection   Table des matières   Index
Rene' LALEMENT 2001-11-07