Java-programm kohandatud objektide massiivi loendi sortimiseks vara järgi

Selles programmis õpite sorteerima kohandatud objektide massiivide loendit Java-s antud atribuudi järgi.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java klass ja objektid
  • Java ArrayList klass

Näide: sortige kohandatud objektide massiivi loend atribuudi järgi

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

Väljund

 A Aa BXZ

Ülalolevas programmis oleme määranud CustomObjectklassi, millel on Stringomadus customProperty.

Lisasime ka atribuudi initsialiseeriva konstruktori ja funktsiooni getter, getCustomProperty()mis tagastab customProperty.

Kui main()meetod, oleme loonud hulgaliselt nimekirja kohandatud objektide nimekirja, vormindatud 5 objekti.

Antud atribuudiga loendi sorteerimiseks kasutame loendi sort()meetodit. sort()Meetod võtab nimekirja sorteerida (lõplik sorditud nimekiri on ka sama) ja comparator.

Meie puhul on võrdluseks lambda mis

  • võtab loendist o1 ja o2 kaks objekti,
  • võrdleb kahe objekti customProperty compareTo()meetodit,
  • ja lõpuks tagastab positiivse arvu, kui o1 omadus on suurem kui o2, negatiivne, kui o1 omadus on väiksem kui o2, ja nulli, kui need on võrdsed.

Sellest lähtuvalt sorteeritakse loend kõige vähem atribuudist suurima järgi ja salvestatakse tagasi loendisse.

Huvitavad Artiklid...