Открыть мобильное меню

Сортировка данных в массиве ArrayList на Java

Для сортировки данных в массиве на Java, можно использовать следующий метод

private static void sortData() {
    Collections.sort(myArrayList, new Comparator() {
        @Override
        public int compare(myClass my2, myClass my1) {
            if (my1.value > my2.value) {
                return 1;
            } else if (my1.value < my2.value) {
                return -1;
            } else {
                return 0;
            }
        }
    });
}

Пример сортировки пользователей по возрасту на Java

Предположим, нам нужно отсортировать пользователей по возрасту.
Создаём ArrayList и добавляем в него пользователей (класс User).
Далее просто вызываем sortUsersByAge()

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class JavaTest {

    private static ArrayList userArrayList;

    public static void main(String[] args) {

        userArrayList = new ArrayList();
        
        User p1 = new User("Alex", 31);
        User p2 = new User("Vasja", 25);
        User p3 = new User("Robert", 43);

        userArrayList.add(p1);
        userArrayList.add(p2);
        userArrayList.add(p3);

        sortUsersByAge();

        for (User user : userArrayList) {
            System.out.println("User: " + user.name + " / " + user.age);
        }
    }

    private static class User {
        public String name;
        public int age;
        User(String _name, int _age) {
            name = _name;
            age = _age;
        }
    }

    //Сортировака пользователей по возрасту
    private static void sortUsersByAge() {
        Collections.sort(userArrayList, new Comparator() {
            @Override
            public int compare(User player2, User player1) {
                if (player1.age > player2.age) {
                    return 1;
                } else if (player1.age < player2.age) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
    }
}

Данный пример выдаст ответ:
User: Robert / 43
User: Alex / 31
User: Vasja / 25

Задайте вопрос или оставьте комментарий:


Вопросы и комментарии: