Kotlin映射键的顺序保持

Kotlin映射键的顺序保持,kotlin,Kotlin,我找不到任何明确说明的文件来解决以下情况下的订单保留问题 val map = mapOf( "k2" to "v1", "k1" to "v2", "k3" to "v3" ) val keys = map.keys.toList() 我希望钥匙始终按以下顺序排列: ["k2", "k1", "k3"] 是否保

我找不到任何明确说明的文件来解决以下情况下的订单保留问题

val map = mapOf(
"k2" to "v1",
"k1" to "v2",
"k3" to "v3" 
)

val keys = map.keys.toList()
我希望钥匙始终按以下顺序排列:

["k2", "k1", "k3"]

是否保证密钥的顺序与它们初始化时的顺序相同?

是的,如果您查看的实现,它使用了LinkedHashMap,其中指出它通常保留密钥顺序,除非在重新插入密钥的情况下

但是,如果内部实现可能由于某种原因而发生变化,我建议使用与您使用
mapOf
相同的方法


LinkedHashMap
在返回确保正确顺序的键的
集合时使用实现。

是的,如果您查看的实现,它使用LinkedHashMap,从中可以看出它通常保留键顺序,除非重新插入键

但是,如果内部实现可能由于某种原因而发生变化,我建议使用与您使用
mapOf
相同的方法

LinkedHashMap
在返回键的
Set
时使用实现,以确保正确的顺序