java 8, Trier la liste des objets par l'attribut sans personnalisé comparateur
Ce qui est le plus propre court chemin pour obtenir ce fait ?
class AnObject{
Long attr;
}
List<AnObject> list;
Je sais que cela peut être fait avec la coutume comparateur pour AnObject. N'est-ce pas là quelque chose de prêt de sortir de la boîte pour de tels cas ? type de
Collections.sort(list, X.attr ) ;
- Avez-vous regarder la javadoc de la comparaison de classe ? Ils ont ajouté un tas de méthodes (on peut directement faire
list1.sort(..)
par la voie).
InformationsquelleAutor Nabil Sham | 2015-11-02
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez un
List<AnObject>
, tous vous avez besoin estSi vous vous faire du code propre en n'utilisant pas des champs publics, mais des méthodes accesseurs, il devient encore plus propre:
Comme un complément à @JB Nizet réponse, si votre attr est nullable,
peut jeter un NPE.
Si vous aussi vous souhaitez trier les valeurs null, vous pouvez envisager de
ou
qui va mettre les valeurs null en premier ou en dernier.
Null-option sécuritaire pour JB Nizet et Alex de la réponse ci-dessus serait de faire ce qui suit:
ou