Лучше использовать TreeMap или заказать? - PullRequest
4 голосов
/ 22 января 2010

Что было бы лучше практики программирования?

Лучше ли использовать порядок по выражению в sql или поместить результаты в treemap против hashmap в java для таких вещей, как выпадающий список?

Ответы [ 4 ]

3 голосов
/ 22 января 2010

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

Для небольших наборов данных разница в производительности может быть незначительной, но я думаю, что в большинстве случаев предложение SQL By Order By будет более простым подходом.

Кстати, вам все равно придется использовать LinkedHashMap вместо простого HashMap, если вы должны сохранить уже отсортированные данные на карте перед их использованием. Потому что LinkedHashMap будет хранить данные в порядке вставки, а HashMap - нет.

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

0 голосов
/ 22 января 2010

Сначала ..

Использование HashMap уничтожит любую попытку «упорядочить по» в вашем SQL, поскольку вы не гарантированно вернете порядок, в котором вы разместили элементы. Поэтому, если вы используете в своем SQL 'order by', вы будете вынуждены использовать LinkedHashMap для хранения, чтобы сохранить порядок элементов.

TreeMap закажет для вас, если вы установите действительный компаратор.

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

0 голосов
/ 22 января 2010

Также зависит от полей, которые вы пытаетесь сделать "упорядочить по" или использовать его для сортировки по желанию в коде Java. Но в большинстве случаев я бы зависел от того, как БД выполняет заказ.

0 голосов
/ 22 января 2010

Многое зависит от реализации, размера списка и т. Д. Я бы сказал, если вы можете сделать заказ с помощью вашего SQL-запроса, это приведет к дополнительным расходам на базу данных, и вам не придется выполнять сортировку в приложение. Также убедитесь, что структура данных, которую вы используете в своем приложении, сохраняет порядок, то есть не вставляйте результаты в хэш-карту. Но многое зависит от специфики того, чего вы пытаетесь достичь.

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