In questo programma imparerai a ordinare un elenco di oggetti personalizzati in base alla loro proprietà in Java.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:
- Classe e oggetti Java
- Classe Java ArrayList
Esempio: Ordina elenco array di oggetti personalizzati per proprietà
 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()); ) ) )
Produzione
A Aa BXZ
Nel programma precedente, abbiamo definito una CustomObjectclasse con una Stringproprietà, customProperty.
Abbiamo anche aggiunto un costruttore che inizializza la proprietà e una funzione getter getCustomProperty()che restituisce customProperty.
Nel main()metodo, abbiamo creato un elenco di array di elenchi di oggetti personalizzati, inizializzato con 5 oggetti.
Per ordinare la lista con la proprietà data, usiamo il sort()metodo della lista . Il sort()metodo accetta l'elenco da ordinare (anche l'elenco finale ordinato è lo stesso) e un file comparator.
Nel nostro caso, il comparatore è un lambda che
- prende due oggetti dalla lista o1 e o2,
- confronta customProperty dei due oggetti usando il compareTo()metodo,
- e infine restituisce un numero positivo se la proprietà di o1 è maggiore di quella di o2, negativo se la proprietà di o1 è minore di o2 e zero se sono uguali.
In base a ciò, l'elenco viene ordinato in base alla proprietà dalla minima alla maggiore e memorizzato di nuovo nell'elenco.








