Програма Java для сортування списку масивів користувацьких об’єктів за властивістю

У цій програмі ви навчитеся сортувати списки користувацьких об’єктів за заданими властивостями в Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Клас і об'єкти Java
  • Клас Java 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()); ) ) )

Вихідні дані

 A Aa BXZ

У наведеній вище програмі ми визначили CustomObjectклас із Stringвластивістю customProperty.

Ми також додали конструктор, який ініціалізує властивість, і функцію отримання, getCustomProperty()яка повертає customProperty.

У main()методі ми створили список масивів із списку нестандартних об'єктів, ініціалізований 5 об'єктами.

Для сортування списку з заданою властивістю ми використовуємо sort()метод list . sort()Метод приймає список , щоб бути відсортований (остаточний відсортований список є також те ж саме) і comparator.

У нашому випадку компаратор - це лямбда, яка

  • бере два об'єкти зі списку o1 та o2,
  • порівнює customProperty двох об'єктів за допомогою compareTo()методу,
  • і, нарешті, повертає додатне число, якщо властивість o1 більше, ніж o2, негативне, якщо властивість o1 менше, ніж o2, і нуль, якщо вони рівні.

Виходячи з цього, список сортується на основі найменшої властивості до найбільшої та зберігається назад до списку.

Цікаві статті...