如何在 Kotlin 中初始化大的不可变映射?

How to initialize big immutable map in Kotlin?

我有一个很大的数据集。它包含超过 1000 条记录。该数据集将一个字符串映射到另一个字符串。所以用Map<String, String>比较方便。此映射中的数据在应用程序期间未更改 运行 因此不可变映射是可以的。

我找到的唯一初始化 Map 的方法是 mapOf 函数:

testMap = mapOf("One" to "1", "Two" to "2", "Eight" to "8")

但我无法将整个数据集放在一行中。这非常不方便,代码看起来完全不可读且丑陋。 更方便的初始化方式是循环逐行从txt文件中读取数据集,并用这些行填充地图。

是否可以循环填充Map?

您可以使用 HashMap,并像这样初始化:

val map = hashMapOf<String,String>()
for (i in 0..1000){
    // Logic to read txt
    map["key"] = "value"
}