如何通过将其他对象字段保存为索引来按对象字段对 MutableMap 进行排序?

How to sort a MutableMap by object field with saving other object field as index?

我正在 MutableMap 中存储 JSON 加载的对象,以便能够通过它的键获取一个对象(在 JSON object 中带有 id 字段) :

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

我正在使用 id 作为索引并且 想要按 name 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}")
        }
    }

  • map 使用toList().

  • 转换为列表
  • sortedBy()用于按value { (_, value) -> value}对列表进行排序。 我们使用 _ 作为键,因为我们不使用它进行排序。

  • 我们使用 toMap() 将其转换回地图并将其存储在结果中。