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

时间:2017-12-14 10:34:49

标签: android sorting android-studio kotlin mutable

我在JSON中存储MutableMap个已加载的对象,以便能够通过它的密钥获取一个对象(JSON object中的id字段带来):< / p>

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

我正在使用id作为索引,希望按MutableMap排序 name以获得输出。

我应该使用单独的容器进行映射和输出,还是只用一个容器就可以完成这两个容器?<​​/ p>

1 个答案:

答案 0 :(得分:1)

到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()将其转换回地图并将其存储在结果中。