我如何根据 Kotlin 中的值对 HashMap<String,Int> 进行排序?

How can i sort HashMap<String,Int> order by their values in Kotlin?

这是我的例子,我如何在 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()) { ... }