2013-05-20 3 views
-4

Я хочу, чтобы отсортировать полную карту в порядке убывания, то stucture карты нижеСортировки вложенной карты на основе значения внутренней карты

SortedMap<String, SortedMap<String, Long>> 

Я хочу, чтобы отсортировать Долгое значением внутреннего SortedMap , Как это может быть сделано?

спасибо.
EDIT: карта изменена на SortedMap
Внутренняя карта всегда будет содержать одно значение.

+0

Что значит точно? Как бы вы выбрали '{" A "=> {" A1 "=> 1," A2 "=> 4}," B "=> {" B1 "=> 2," B2 "=> 3}}'? –

+2

Btw: hashMap не является сортируемой структурой, ее карта в любом случае ... – Smajl

+0

http://stackoverflow.com/a/8119401/1654265 –

ответ

3

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

Если вы хотите перебирать элементы карты, отсортированные по их значению, то я бы просто скопировал все записи в список, отсортировал этот список так, как вы хотите, и перебирайте отсортированный список.

+0

, но это будет сортировать только внутреннюю карту. Мне нужно отсортировать полную внутреннюю + внешнюю карту, основанную на значении внутренней карты. если сортировка неверна, данные будут отображаться некорректно. – Mizan

+0

Это не то, что вы просили. Вы спросили: я хочу сортировать вложенную карту. Сортировка внешней карты не имеет никакого смысла. Что, если внутренняя карта имеет несколько значений (как обычно имеет любая карта)? Как отсортировать записи? В любом случае, ответ тот же. Извлеките записи в список и отсортируйте список так, как вы хотите. Вместо сортировки 'List >', вы должны сортировать 'List >>'. –

+0

Внутренняя карта имеет только одно значение (это не может увеличиться). Мне нужно отсортировать всю карту. – Mizan

Смежные вопросы