Πρόγραμμα Java για ταξινόμηση ArrayList προσαρμοσμένων αντικειμένων ανά ιδιότητα

Σε αυτό το πρόγραμμα, θα μάθετε να ταξινομήσετε μια λίστα πίνακα προσαρμοσμένου αντικειμένου από τη δεδομένη ιδιότητά τους στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Τάξη και αντικείμενα Java
  • Τάξη Java ArrayList

Παράδειγμα: Ταξινόμηση ArrayList προσαρμοσμένων αντικειμένων ανά ιδιότητα

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

Παραγωγή

 AA BXZ

Στο παραπάνω πρόγραμμα, ορίσαμε μια CustomObjectκλάση με μια Stringιδιότητα, customProperty.

Προσθέσαμε επίσης έναν κατασκευαστή που αρχικοποιεί την ιδιότητα και μια συνάρτηση getter getCustomProperty()που επιστρέφει customProperty.

Στη main()μέθοδο, δημιουργήσαμε μια λίστα πίνακα προσαρμοσμένων αντικειμένων, αρχικοποιημένη με 5 αντικείμενα.

Για την ταξινόμηση της λίστας με τη δεδομένη ιδιότητα, χρησιμοποιούμε τη sort()μέθοδο της λίστας . Η sort()μέθοδος παίρνει τη λίστα προς ταξινόμηση (η τελική ταξινομημένη λίστα είναι επίσης η ίδια) και a comparator.

Στην περίπτωσή μας, το συγκριτικό είναι ένα λάμδα το οποίο

  • παίρνει δύο αντικείμενα από τη λίστα o1 και o2,
  • συγκρίνει τη compareTo()μέθοδο customProperty των δύο αντικειμένων χρησιμοποιώντας τη μέθοδο,
  • και τελικά επιστρέφει θετικό αριθμό εάν η ιδιότητα o1 είναι μεγαλύτερη από o2, αρνητική εάν η ιδιότητα o1 είναι μικρότερη από o2, και μηδέν εάν είναι ίσες.

Με βάση αυτό, η λίστα ταξινομείται με βάση την ελάχιστη ιδιότητα έως τη μεγαλύτερη και αποθηκεύεται στη λίστα.

ενδιαφέροντα άρθρα...