所以我有10,000多个字符串,我需要查询该组中是否包含任何给定的字符串。我目前只将它们存储在一个数组中,我只使用stringArray.contains(myString)
功能。这有效吗?我将这个数组存储在一个单独的类和文件中,但它看起来确实很糟糕"丑陋"拥有如此庞大的阵列
答案 0 :(得分:5)
如果您只需要进行contains
检查,而不关心元素排序,请使用Set
。
let someStrings: Set = ["a", "b", "c"]
print(someStrings.contains("a"))
答案 1 :(得分:1)
您可能需要面对的更大问题是如何检索您可能想要的字符串。我建议你研究字符串中包含的三字符索引。特别是,识别字符串中出现的三个字符的所有序列,并通过它包含的最不常见的三字符索引该字符串。
你可以从你的语料库中自己构建那个频率表,或者,如果我没记错的话,你可以在网上找到三角频率的通用表,尽管我的手机里没有方便的链接。
答案 2 :(得分:0)
随着我的进步,Strings的数量超过了150万,而我并不想将它们存储在一个庞大的swift文件中。所以我为它创建了一个JSON文件,并创建了一个单例,在应用程序启动时解析了JSON中的数据。这个速度非常慢,所以我选择将它存储在我随应用程序提供的SQLite数据库中。然后我使用以下库进行搜索: