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