Kotlin-mutableMapOf()是否会保留我输入的顺序

时间:2019-04-15 10:21:49

标签: kotlin

我需要知道Kotlin中的地图会保留我在插入过程中输入的条目的顺序吗?
例子

val data = mutableMapOf<String,String>()
data.put("some_string_1","data_1")
.
.
.
data.put("some_string_n","data_n")

订单会在地图迭代期间保留吗?

2 个答案:

答案 0 :(得分:6)

是的,会的。

reference for mutableMapOf()说:

  

返回的映射将保留条目迭代顺序。

这正是您要求的属性。

当前实现(自Kotlin 1.3.30起)returns a LinkedHashMap,该实现通过链接条目来保留顺序。基本的实现可能会在将来的版本中更改,但是记录的功能合同仍将保证输入迭代顺序。

答案 1 :(得分:0)

mutableMapOf(Pair...)将创建该平台默认实现(可能是HashMap)的实例。

如果您需要数据值来保留插入顺序,则可以使用linkedMapOf(Pair...)

val data = linkedMapOf(
    "some_string_1" to "data_1",
    "some_string_2" to "data_2",
    "some_string_n" to "data_n"
)