这是我的示例,如何在Kotlin中做到这一点?

var hashMapForTry = HashMap<String,Int>()

hashMapForTry.put("Hi",5)
hashMapForTry.put("What",7)
hashMapForTry.put("How",2)
hashMapForTry.put("Go",1)
hashMapForTry.put("Ford",9)

最佳答案

您无法对HashMap进行排序,因为它不能保证将其条目以任何特定顺序进行迭代。但是,您可以将项目排列为LinkedHashMap,以保持插入顺序:

    val resultMap = hashMapForTry.entries.sortedBy { it.value }.associate { it.toPair() }

    println(resultMap)

此处hashMapForTry的条目按条目值排序,然后 associate 函数将条目列表转换为映射,该映射保留该列表中条目的顺序。

该函数的结果类型为Map<String, Int>。如果需要进一步改变结果,可以使用 associateTo 函数并指定一个空的目标LinkedHashMap作为参数:
....associateTo(LinkedHashMap()) { ... }

关于list - 如何在Kotlin中按其值对HashMap <String,Int>顺序进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59097419/

10-10 14:26