Сортируемая HashMap-подобная структура данных в Java? - PullRequest
2 голосов
/ 25 февраля 2011

Есть ли какая-то структура данных в Java, которая напоминает HashMap, которую можно отсортировать по ключу или значению? В PHP вы можете иметь ассоциативные массивы, которые можно сортировать. Есть ли такая вещь в Java?

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

HashMap не отсортированы почти по определению; хорошая хеш-функция создаст, казалось бы, случайное распределение ключей.

Если вы хотите использовать Map в Java, который хранит свои элементы в отсортированном порядке, рассмотрите TreeMap, который поддерживается отсортированным двоичным деревом поиска.

Если вы хотите что-то, что можно отсортировать по ключу или по значению, возможно, вы ищете двунаправленную карту или «двуногую карту». В стандартных библиотеках Java нет, и самая близкая из известных мне реализаций - Google BiMap. Однако, как отметил Pangea, он не поддерживает элементы в отсортированном порядке. Вы можете легко создать свою собственную реализацию, просто используя два TreeMap s, один из которых - от ключей к значениям, а другой - от значений до ключей.

Надеюсь, это поможет!

4 голосов
/ 25 февраля 2011

SortedMap отсортировано только по ключам

...