Pourquoi est-Java utilisé ? Pourquoi quelqu'un mettrait en œuvre
dans une classe ? Je l’ai vu. que je me demande ce que c’est.
Quelqu'un peut me donner des exemple de la vie réelle quand vous implémenteriez comparables ?
Pourquoi est-Java utilisé ? Pourquoi quelqu'un mettrait en œuvre
dans une classe ? Je l’ai vu. que je me demande ce que c’est.
Quelqu'un peut me donner des exemple de la vie réelle quand vous implémenteriez comparables ?
Comparable définit un ordre naturel. Ce que cela signifie, c'est que vous êtes le définir quand un objet doit être considéré comme "inférieur" ou "supérieur à".
Supposons que vous avez un tas de nombres entiers et que vous souhaitez trier. C'est assez facile, il suffit de les placer dans une collection triée, droit?
TreeMap<Integer> m = new TreeMap<Integer>();
for (Integer i : myCollection)
...
Mais maintenant, supposons que j'ai un certain objet personnalisé, où le tri fait sens pour moi, mais n'est pas défini. Disons que, j'ai des données représentant des districts par code postal avec la densité de la population, et je tiens à les trier en fonction de la densité:
public class District {
String zipcode;
Double populationDensity;
}
Maintenant la meilleure façon de les trier est de les définir avec un ordre naturel:
public class District implements Comparable<District>{
String zipcode;
Double populationDensity;
public int compareTo(District other)
{
return populationDensity.compareTo(other.populationDensity);
}
}
Notez que vous pouvez faire l'équivalent de la chose par la définition d'un comparateur. La différence est que le comparateur définit l'ordre logique, par exemple, peut-être dans un processus séparé j'ai besoin de commander les mêmes objets par code postal - dans ce cas, la commande n'est pas nécessairement une propriété de l'objet, et il n'y a pas qu'un seul ordre naturel.
Cité de la javadoc;
Cette interface impose un total de la commande sur les objets de chaque classe qui l'implémente. Cette commande est dénommée les de la classe naturelle de la commande, et de la classe compareTo la méthode est son naturel méthode de comparaison.
Les listes et les tableaux d'objets qui implémenter cette interface peut être triée automatiquement par les Collections.trier (et Les tableaux de.le tri). Les objets qui implémentent cette interface peut être utilisée comme clés dans une triés à la carte ou sous forme d'éléments d'un ensemble trié, sans la nécessité de spécifiez un comparateur.
Edit: ..et fait les bits importants en gras.
Le fait qu’une classe implémente `` signifie que vous pouvez prendre deux objets de cette classe et de les comparer. Certaines classes, comme certaines collections (fonction de tri dans une collection) qui empêchent les objets dans l’ordre s’appuient sur eux étant comparables (afin de trier, vous devez savoir quel objet est le « plus grand » et ainsi de suite).
La plupart des exemples ci-dessus montre comment réutiliser un objet comparable existant dans la fonction compareTo. Si vous souhaitez implémenter votre propre compareTo lorsque vous souhaitez comparer deux objets de même catégorie, dire un AirlineTicket objet que vous souhaitez trier par prix (moins est classé au premier rang), suivie par nombre d’escale (encore une fois, moins est classé au premier rang) , vous feriez ce qui suit :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.