Java program za sortiranje popisa nizova prilagođenih objekata prema svojstvu

U ovom programu naučit ćete sortirati popis prilagođenih objekata prema zadanom svojstvu u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java klasa i objekti
  • Klasa Java ArrayList

Primjer: Poredaj popis nizova prilagođenih objekata prema svojstvu

 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()); ) ) )

Izlaz

 A Aa BXZ

U gornjem programu definirali smo CustomObjectklasu sa Stringsvojstvom customProperty.

Također smo dodali konstruktor koji inicijalizira svojstvo i funkciju getCustomProperty()getera koja vraća customProperty.

U main()metodi smo kreirali niz popisa prilagođenih objekata, inicijaliziranih s 5 objekata.

Za sortiranje popisa s danim svojstvom koristimo sort()metodu popisa . sort()Metoda uzima popis biti sortiran (završni sortirani popis je isti) i comparator.

U našem slučaju, usporednik je lambda koja

  • uzima dva objekta s popisa o1 i o2,
  • uspoređuje customProperty dva objekta pomoću compareTo()metode,
  • i na kraju vraća pozitivan broj ako je svojstvo o1 veće od o2, negativno ako je svojstvo o1 manje od o2 i nula ako su jednake.

Na temelju toga, popis se sortira na temelju najmanje svojstva prema najvećem i sprema natrag na popis.

Zanimljivi članci...