Как отсортировать будущие события в Array-List по дате и времени - PullRequest
0 голосов
/ 29 августа 2018

Как мне отсортировать приведенный ниже список? Таким образом, значения сортируются в соответствии с датой и временем, а ожидаемый результат после сортировки должен быть таким, как показано ниже

Я стараюсь сам, но не получаю результата, может кто-нибудь мне помочь, пожалуйста

27-08-2018 15:20:12

27-08-2018 12:20:10

26-08-2018 10:20:20

мой код: -

     EventObject eventObject1 = new EventObject;
        eventObject1.setDateAndTime("27-08-2018 15:20:12")
        eventObject1.name("name1")
        EventArrayList.add(eventObject1)

        EventObject eventObject2 = new EventObject;
        eventObject2.setDateAndTime("27-08-2018 12:20:10")
        eventObject2.name("name2")
        EventArrayList.add(eventObject2)

        EventObject eventObject3 = new EventObject;
        eventObject3.setDateAndTime("26-08-2018 10:20:20")
        eventObject3.name("name2")
        EventArrayList.add(eventObject3)

 if (EventArrayList.size() > 0) {
                Collections.sort(EventArrayList, new Comparator<AuditListChildObject>() {
                    @Override
                    public int compare(final EventObject object1, final EventObject object2) {
                        return object1.getDateAndTime().compareTo(object2.getDateAndTime());
                    }
                });
            }

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Попробуйте это

 Collections.sort(EventArrayList, new Comparator<EventObject>() {
        @Override
        public int compare(EventObject o1, EventObject o2) {
            if (o2.getDateAndTime() == null || o1.getDateAndTime() == null)
            return 0;
            return o2.getDateAndTime().compareTo(o1.getDateAndTime());
        }


    });
0 голосов
/ 29 августа 2018

Рассматривали ли вы просто разбор строки в объект даты?

dateString = "27-08-2018 15:20:12"
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date date = dateFormat.parse(dateString);

Объекты даты должны быть сопоставимы и поэтому могут быть отсортированы по

Collections.sort(arrayOfDateObjects)

или с помощью специального компаратора вы определяете сортировку ваших объектов на основе дат, проанализированных в ваших строках, с помощью пользовательского метода compare ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...