我需要知道Kotlin中的地图会保留我在插入过程中输入的条目的顺序吗?
例子
val data = mutableMapOf<String,String>()
data.put("some_string_1","data_1")
.
.
.
data.put("some_string_n","data_n")
订单会在地图迭代期间保留吗?
答案 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"
)