Как отсортировать даты в списке - PullRequest
3 голосов
/ 19 января 2012

Как мне отсортировать даты внутри списка?

Я читал, что этого можно достичь с помощью TreeMap, поскольку это отсортированная и ориентируемая карта, которая организует элементы в самобалансирующемся двоичном дереве.но это также дорого.

Мой вопрос: каков ЛУЧШИЙ и ЭФФЕКТИВНЫЙ способ достижения результата?

1 Ответ

6 голосов
/ 19 января 2012

Это зависит.Если вы хотите иметь «всегда отсортированный» контейнер, тогда TreeSet - ваш друг.Добавление еще одного элемента в TreeMap будет O (log (n)) - (очень хорошо, быстрее, чем линейный).

Если вам нужно отсортировать его только один раз (без добавления элементов позже), просто поместите его ArrayList и использовать метод sort () .Это будет оптимально - O (n log (n))

Обновление:

Как упоминал в комментарии JB Nizet, Set (TreeSet) не может содержать дубликаты.Список (ArrayList) можно.
Если важна производительность и много элементов, и вам нужно хранить отсортированные элементы, допускающие дубликаты, вы можете сохранить их в TreeSet, но нужно реализовать подсчет (add() будет element.count++ и remove()будет element.count-- например).

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