Mat*_* B. 0 java collections search
我有100000字符串.例如,我希望从该集合中获取以"JO"开头的所有字符串.什么是最好的解决方案?
我在想Aho-Corasick,但我的实现不支持外卡.
Pet*_*rey 10
如果你想要所有以序列开头的字符串,你可以将所有字符串添加到像TreeSet这样的NavigableSet中,并获取subSet(text, text+'\uFFFF')将为你提供的所有条目text 以此查找为O(log n)
如果你想让所有的字符串以序列结束,你可以做类似的事情,除非你必须反转字符串.在这种情况下,从反向String到转发String的TreeMap将是更好的结构.
如果你想要"x*z",你可以使用第一组进行搜索,并使用Map的值进行联合.
如果你想包含" x ",你可以使用Navigable <String,Set <String >>,其中键是每个String从第一个,第二个,第三个char开始等.值是一个Set,因为你可以得到重复.您可以像结构一样进行搜索.
| 归档时间: |
|
| 查看次数: |
3245 次 |
| 最近记录: |