Intereting Posts

Как отсортировать поле MutableMap по объекту с сохранением другого поля объекта в качестве индекса?

Я храню JSON загруженные объекты в MutableMap чтобы иметь возможность получить один объект по его ключу (пришел с полем id в object JSON ):

 [{id: 1, name: "Red"}, {id: 2, name: "Green"}] 

Я использую id как индекс и хочу сортировать MutableMap по name для вывода.

Должен ли я использовать отдельные контейнеры для сопоставления и вывода, или можно выполнить оба только с одним контейнером?

Solutions Collecting From Web of "Как отсортировать поле MutableMap по объекту с сохранением другого поля объекта в качестве индекса?"

для sortByValue вы можете попробовать,

 private fun sortingByValue() { val map = hashMapOf<Int, String>() map.put(1, "Red") map.put(2, "Green") val result = map.toList().sortedBy { (_, value) -> value }.toMap() for (entry in result) { print("key : ${entry.key}") println("value : ${entry.value}") } } 

  • карта преобразуется в список, используя toList() .

  • sortedBy() используется для сортировки списка по value { (_, value) -> value} . Мы используем _ для ключа, потому что мы не используем его для сортировки.

  • мы преобразуем его обратно на карту, используя toMap() и сохраним его в результате.