跳到主要内容

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进行排序