Scala可以创建一个对象并将其保存在内存中吗?我希望这个问题还不存在。我至少没有发现Scala的具体内容。
问题是,我想读取某个国家的邮政编码数据的CSV文件(它不是太大,所以它应该适合内存)并将邮政编码和相应的城市存储到一个对象中(例如以邮政编码为键,以花旗为值的地图。后来我想在这个对象中搜索特定的邮政编码。如果它存在?如果它确实那么我也想给出相应的citi(es)。但是现在我不想每次调用此函数时一次又一次地读取CSV文件。这就是我想将数据保存到内存中的对象的原因。 scala有没有办法做到这一点?如何检查对象是否已存在于内存中或是否必须创建它?
是否有人提示我应该寻找什么?
答案 0 :(得分:1)
创建地图后,它将保留在内存中,直到它被垃圾回收。如果没有对象引用您的地图,垃圾收集器可能会删除它。您可以在程序周围传递对地图的引用,以便永远不会删除它,也不会将其设置为静态。
在Java中你可以将它作为一个静态成员放在一个类中 - Scala中的并行是将它放在一个单独的对象中,它看起来像这样:
object storedData {
lazy val data : Map[...] = // read file
}
然后,您可以通过从程序中的任何位置调用storedData.data来读取此内容。