Java programma, lai kārtotu pielāgotu objektu masīvu sarakstu pēc īpašuma

Šajā programmā jūs iemācīsities kārtot pielāgotu objektu masīvu sarakstu pēc viņu īpašuma Java.

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java klase un objekti
  • Java ArrayList klase

Piemērs: kārtojiet pielāgotu objektu masīvu sarakstu pēc īpašuma

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

Rezultāts

 A Aa BXZ

Iepriekš minētajā programmā mēs esam definējuši CustomObjectklasi ar Stringrekvizītu customProperty.

Mēs esam pievienojuši arī konstruktoru, kas inicializē īpašumu, un funkciju getter, getCustomProperty()kas atgriež customProperty.

Šajā main()metodē, mēs esam izveidojuši masīva sarakstu pasūtījuma objektu sarakstu, inicializētu ar 5 priekšmetiem.

Lai kārtotu sarakstu ar norādīto rekvizītu, mēs izmantojam saraksta sort()metodi. sort()Metode ņem sarakstu varētu sašķirot (gala sakārtots saraksts ir arī tas pats) un comparator.

Mūsu gadījumā salīdzinātājs ir lambda, kas

  • ņem divus objektus no saraksta o1 un o2,
  • salīdzina divu objektu customProperty, izmantojot compareTo()metodi,
  • un visbeidzot atgriež pozitīvo skaitli, ja o1 īpašība ir lielāka par o2, negatīva, ja o1 īpašība ir mazāka par o2, un nulle, ja tie ir vienādi.

Pamatojoties uz to, saraksts tiek sakārtots, pamatojoties uz vismazāko īpašumu līdz lielākajam, un tiek saglabāts atpakaļ uz sarakstu.

Interesanti raksti...