Временная сложность метода reverseOrder для Collection - PullRequest
0 голосов
/ 11 января 2019

У меня есть список файлов, которые я хочу отсортировать по времени последнего доступа в порядке убывания. Какой лучший выход из 2-х способов:

  1. Напишите пользовательский компаратор, который имеет логику для сравнения в обратном порядке

  2. Напишите компаратор клиента, который имеет логику для сравнения в порядке возрастания, а затем вызовите Comparator.reversed() в методе вызывающего абонента

Я предпочитаю # 1, потому что reversed() снова займет O (n) время, когда n равно размеру списка. Я хотел бы узнать мнение людей здесь.

1 Ответ

0 голосов
/ 11 января 2019

Все, что делает Comparator.reversed(), - это обратный порядок аргументов путем создания нового объекта-оболочки для цели Comparator, которая сортируется в естественном порядке. Вместо (a, b) сравнивается (b, a). не переворачивает список как последний шаг после сортировки по естественному порядку.

Стоимость сортировки списка будет одинаковой. Если ваши данные большие и уже предварительно отсортированы, направление сортировки будет иметь значение, но для небольших коллекций это не имеет никакого практического значения.

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