Я пытаюсь сортировать карту Map<Integer,Set<Integer>>
, которая хранит элементы, отсортированные по size()
установленного значения.Карта, отсортированная по размеру коллекции значений
На практике это карта узла с другими узлами, подключенными к этому узлу. Я хочу быстро (O (logn)) получить доступ к узлу с наибольшим количеством ребер без необходимости сортировать каждый раз.
Например, порядок должен быть:
3 => {1,2,4,5}
12 => {1,2,3}
14 => {3,2,3}
65 => {3,8}
6 => {2}
2 => {5}
С TreeMap
не будет делать это, так как я не могу сортировать на основе значений, я, вероятно, нужно свернуть что-то обычай.
EDIT: Размер набора действительно может измениться, которые могут чрезмерно усложнять еще больше
Что бы самый простой способ для достижения этой цели?
Что значит «TreeMap» не будет делать? Вы можете использовать пользовательский Компаратор. – markspace
@markspace Только компаратор позволяет сортировать по ключу (если я не хочу принять еще один уродливый/ненадежный хак/решение) –
Обратный ключ и значение. Вы сказали, что хотите посмотреть по размеру правильно? – markspace