Сортировка объекта по числу дней в номере

В настоящее время я получаю данные из своего списка, но я получаю данные случайным образом, если кто-нибудь может помочь мне отсортировать данные на основе день в числе, я прикрепил изображение своей базы данных. Я хочу отсортировать данные как 1 2 3 4 .. 14 введите описание изображения здесь

Спасибо

Отвечает ли это на ваш вопрос? Сортировка ArrayList пользовательских объектов по свойствам

user11935191 04.02.2021 20:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

для сортировки списков мы можем использовать метод sort(your_list) класса Collections. Это отсортирует список в соответствии с естественным порядком, то есть в порядке возрастания. Поскольку вы хотите, чтобы он отсортировался на основе определенной функции, вы должны реализовать интерфейс Comparator с безопасностью типов, такой же, как в вашем списке. Вам нужно будет реализовать метод compareTo. Обратитесь к приведенному ниже коду для FYR: - `

public class Temp implements Comparable<Temp> {
    Temp(int a, int b) {
        this.a = a;
        this.b = b;
    }

    int a;
    int b;
    public static void main(String[] args) {

        Temp t1 = new Temp(11,2);
        Temp t2 = new Temp(9,5);
        Temp t3 = new Temp(1,7);
        Temp t4 = new Temp(10,9);
        Temp t5 = new Temp(14,11);

        ArrayList<Temp> al = new ArrayList<Temp>();
        al.add(t1);
        al.add(t2);
        al.add(t3);
        al.add(t4);
        al.add(t5);
        Collections.sort(al);
        for(Temp i:al) {
            System.out.println(i.a+"," +i.b);
        }
    }

    @Override
    public int compareTo(Temp o) {
        if (a==o.a) {
            return 0;
        }
        else if (a>o.a) {
            return 1;  
        }
        else {
            return -1;
        }
    }
}`
Ответ принят как подходящий

Предположим, у вас есть класс Client, определенный как

class Client {

    private long dayInNumber;
    private String clientName;
    private String day;

   //setters and getters ommitted for brevity and clarity
}

Тогда у вас есть список клиентов

List<Client> clients = new ArrayList<>();

Чтобы отсортировать это dayInNumber, вы можете отсортировать его в SQL (предложение order by), предполагая, что данные поступают из SQLite.

Или вы можете создать собственный Comparator<T> из Client объектов, чтобы выполнить сортировку в коде, как показано ниже.

import java.util.Comparator;

public class ClientDayInNumberComparator implements Comparator<Client> {

    @Override
    public int compare(Client c1, Client c2) {
        if (c1.getDayInNumber() > c2.getDayInNumber()) return 1;
        else if (c1.getDayInNumber() < c2.getDayInNumber()) return -1;
        else
            return 0;
    }

}

Это отсортирует клиентов по dayInNumber в порядке возрастания (1, 2, 3,... N). Затем используйте его следующим образом

List<Client> clients = new ArrayList<>();
Collections.sort(clients, new ClientDayInNumberComparator());

Collections упакован в java.utils пакет, который вам нужно будет импортировать

Спасибо за ваше время. после вызова client = new ArrayList<>(); содержимое или элементы, присутствующие в моем списке, становятся 0

Saad Zahoor 29.04.2019 05:48

@saadzahoor Очевидно, вам нужно заполнить список правильными данными, вашими данными! Что выходит за рамки этого вопроса... так что вы можете смело игнорировать эту строку

Leo 29.04.2019 06:03

Другие вопросы по теме