什么是存储和查询大型(10,000多个)字符串的最有效方法



所以我有10,000多个字符串,如果该组中包含任何给定的字符串,我需要查询。我目前将它们存储在数组中,而我只使用stringArray.contains(myString)功能。这有效吗?我正在将此数组存储在单独的类和文件中,但是拥有如此庞大的数组

似乎确实很"丑陋">

如果您只需要进行contains检查,并且不在乎元素订购,请使用Set

let someStrings: Set = ["a", "b", "c"]
print(someStrings.contains("a"))

您可能必须面对的更大的问题是如何检索可能想要的字符串。我建议您研究字符串中包含的Trigraphs的索引。特别是,确定在字符串中出现的三个字符的所有序列,并用它包含的最少常见的trigraph索引字符串。

您可以从字符串语料库中构建自己的频率表,或者,如果我没记错的话,您可以在网上找到Trigraph频率的通用表,尽管我在这里没有方便的链接。

随着我的进展,字符串数量超过150万,我不想将它们存储在大量的swift文件中。因此,我为其创建了一个JSON文件,并创建了一个单例,该单元在应用程序启动时从JSON中解析了数据。但是,这非常慢,所以我搬到了将其存储在使用该应用程序的SQLite数据库中的选项。然后,我使用以下库进行搜索:

https://github.com/stephencelis/sqlite.swift

相关内容

  • 没有找到相关文章

最新更新