Kotlin程序按值排序映射
示例:按值对Map进行排序
fun main(args: Array<String>) {
var capitals = hashMapOf<String, String>()
capitals.put("尼泊尔", "加德满都")
capitals.put("印度", "新德里")
capitals.put("美国", "华盛顿")
capitals.put("英国", "伦敦")
capitals.put("澳大利亚", "堪培拉")
val result = capitals.toList().sortedBy { (_, value) -> value}.toMap()
for (entry in result) {
print("国家: " + entry.key)
println(" 首都: " + entry.value)
}
}
运行程序时,输出结果为:
国家: 澳大利亚 首都: 堪培拉
国家: 尼泊尔 首都: 加德满都
国家: 英国 首都: 伦敦
国家: 印度 首都: 新德里
国家: 美国 首都: 华盛顿
在上面的程序中,我们有一个HashMap
,其中包含国家和它们各自的首都,存储在变量capitals
中。
为了对该映射进行排序,我们使用了一系列操作,这些操作在单行中执行:
val result = capitals.toList().sortedBy { (_, value) -> value}.toMap()
- 首先,使用
toList()
将capitals
转换为列表。 - 然后,使用
sortedBy()
按值对列表进行排序{ (_, value) -> value}
。我们使用_
表示键,因为在排序中我们不使用键。 - 最后,使用
toMap()
将其转换回映射,并将其存储在result
中。
以下是等效的Java代码:Java程序:按值对Map进行排序。