【发布时间】:2014-02-02 00:35:15
【问题描述】:
是否有任何快速算法可以在字符串的 Arraylist 中搜索特定字符串?
例如:
我有一个数组列表:
{"white house","yellow house","black door","house in heaven","wife"}
并且想要搜索包含“house”的字符串。
它应该在最短的时间内返回{"white house","yellow house","house in heaven"}。
我的意思是我的问题是处理没有索引的大数据(大约 167000 个字符串的列表)。
谢谢!
【问题讨论】:
-
" 但在最短的时间内" 无论你做什么,这将是 O(n)
-
真正加快速度的唯一方法是按字符数或最大单词对列表进行排序。然后,您可以忽略所有字符较少的字符串,例如“wife”。否则,你真的做不了什么。您可以更快地搜索数字列表的唯一原因是它们很容易排序。没有简单的方法来订购您的清单。
-
@BobbyD17 我敢打赌我可以用线程池加速它;)(这不会改变复杂性,请注意)
标签: java string search arraylist