如何在 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"
}
我有一个很大的数据集。它包含超过 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"
}