Trier un ArrayList basé sur un champ d’object

Duplication possible:
Trier un tableauListe de contacts

Je stocke des objects DataNode dans une ArrayList . La classe DataNode a un champ entier appelé degree . Je veux récupérer des objects DataNode partir de nodeList dans l’ordre croissant des degree . Comment puis-je le faire.

 List nodeList = new ArrayList(); 

Modifiez la classe DataNode pour qu’elle implémente une interface comparable.

 public int compareTo(DataNode o) { return(degree - o.degree); } 

alors juste utiliser

 Collections.sort(nodeList); 

Utilisez un comparateur personnalisé:

 Collections.sort(nodeList, new Comparator(){ public int compare(DataNode o1, DataNode o2){ if(o1.degree == o2.degree) return 0; return o1.degree < o2.degree ? -1 : 1; } }); 

Vous pouvez utiliser le comparateur Bean pour sortinger toutes les propriétés de votre classe personnalisée.