Dans ce programme, vous apprendrez à trier une arraylist d'objets personnalisés en fonction de leur propriété donnée en Java.
Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:
- Classe Java et objets
- Classe Java ArrayList
Exemple: Trier ArrayList d'objets personnalisés par propriété
import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )
Production
Un Aa BXZ
Dans le programme ci-dessus, nous avons défini une CustomObject
classe avec une String
propriété, customProperty.
Nous avons également ajouté un constructeur qui initialise la propriété et une fonction getter getCustomProperty()
qui renvoie customProperty.
Dans la main()
méthode, nous avons créé une liste de tableau de liste d'objets personnalisés, initialisée avec 5 objets.
Pour trier la liste avec la propriété donnée, nous utilisons la sort()
méthode de list . La sort()
méthode prend la liste à trier (la liste triée finale est également la même) et a comparator
.
Dans notre cas, le comparateur est un lambda qui
- prend deux objets de la liste o1 et o2,
- compare la propriété customProperty des deux objets à l'aide de la
compareTo()
méthode, - et renvoie finalement un nombre positif si la propriété de o1 est supérieure à celle de o2, négative si la propriété de o1 est inférieure à celle de o2, et zéro si elles sont égales.
Sur cette base, la liste est triée en fonction de la propriété la moins élevée à la plus grande et stockée dans la liste.