Programma Java per ordinare l'elenco array di oggetti personalizzati per proprietà

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.

Articoli interessanti...