English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map коллекции

Java Set коллекции

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Java программа сортировка ArrayList с пользовательскими объектами по свойству

Java полный список примеров

В этом примере вы узнаете, как сортировать ArrayList с пользовательскими объектами по заданному свойству в 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<Customobject> 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
B
X
Z

В программе выше мы определили класс CustomObject с свойством String customProperty

Мы также добавили конструктор для инициализации свойств и getter-функцию getCustomProperty(), которая возвращает customProperty

В методе main() мы создаем список массив объектов CustomObject и инициализируем его 5 объектами.

Для сортировки списка по заданному свойству мы используем метод sort() списка. Метод sort() принимает список для сортировки ( 最终 сортированный список также будет таким же ) и компаратор

В нашем примере компаратор - это lambda-выражение

  • Получение двух объектов из списков o1 и o2

  • Использование метода compareTo() для сравнения свойств customProperty двух объектов

  • Если свойство o1 больше свойства o2, возвращает положительное число; если свойство o1 меньше свойства o2, возвращает отрицательное число; если они равны, возвращает ноль.

На этом основании, список (list) сортируется по минимальному свойству к максимальному свойству и хранится обратно в список (list)

Java полный список примеров