Comment gérer les valeurs null lors de l'utilisation de Java de collecte de tri
Lors de l'utilisation de Collection.trier en Java que dois-je retourner lorsque l'un des objets internes est null
Exemple:
Collections.sort(list, new Comparator<MyBean>() {
public int compare(MyBean o1, MyBean o2) {
return o2.getDate().compareTo(o1.getDate());
}
});
Permet de dire o2 n'est pas nulle, mais d'o2.getDate (), il est, donc dois-je retourner 1 ou -1 ou 0 lors de l'ajout d'une valeur null validation?
Vous devez vous connecter pour publier un commentaire.
Naturellement, c'est votre choix. Quelle que soit la logique de vous écrire, il permettra de définir les règles de tri. Donc, "devrait", n'est pas vraiment le mot juste ici.
Si vous voulez null à apparaître avant tout autre élément, quelque chose comme cela pourrait ne
Dans Java 8, vous pouvez également utiliser
nullsFirst()
:Ou
nullsLast()
:Ces méthodes de tri
null
au début ou à la fin. Il n'y a pas de mauvais ou de droite si vous le considéreznull
plus grand ou plus petit que l'autre des objets. Ceci est totalement à vous, comme d'autres déjà dit.Ça dépend, considérez-vous que la valeur null comme une grande valeur ou une valeur faible.
Vous pouvez envisager la plupart du temps que null < tout le reste, mais ça dépend du contexte.
Et 0 serait une terrible valeur de retour ici.
À la suite de la réponse de Nikita Rybak, je suis déjà un enum comparateur, et ne fait qu'ajouter de la valeur null logique à partir d'ici.
Dans le présent formulaire, je peux appeler la méthode de tri sur ma liste.