Intereting Posts
Мне просто не кажется, что мой Kotlin Recycler Multiple View Code разобрался Как получить пользовательские опции в плагине protoc для java? Выражение JOOQ Kotlin Json Parser Тест Running Spek показывает ошибку "Empty test suite" Почему функция Kotlin с параметрами по умолчанию создает метод с неиспользуемым параметром Swift – выход из внешней функции из закрытия Android Things: NullPointerException при получении данных через USB UART по малине PI 3 Переменная вида Kotlin неожиданно null в методе Activity onCreate Набор членов класса (значение) вызывается рекурсивно … почему? Почему инициализаторы свойств не вызывают пользовательский сеттер? Как исправить ошибку вывода типа в Completed, преобразованную с помощью RxLifecycle.bindToLifecycle ()? Как отсортировать поле MutableMap по объекту с сохранением другого поля объекта в качестве индекса? Vert.x. Как создать реальное приложение многопользовательского JVM? Проблема отзыва Котлина

Как отсортировать поле 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() и сохраним его в результате.