Java最好的方法来执行String startsWith

Jin*_*Jin 2 java string tree trie

我想比较一个提供的字符串是否以数组中的任何字符串开头.最简单的解决方案是:

String b = ...;
boolean matched = false;
for (String a : array) {
  if (b.startsWith(a))
    match = true;
}
Run Code Online (Sandbox Code Playgroud)

但是,直观地说,我想使用像trie这样的东西来提高效率,因为字符串数组可能会变得非常大,我需要快速运行这些匹配.我可以保证这些字符串都是按字母顺序排列的.我还可以保证数组中的所有字符串都是2或更小.在Java中实现这种类似trie的结构的最佳方法是什么?我找不到任何基于Java的库来执行此操作.

谢谢!

CPe*_*ins 5

如果你真的有足够的开始字符串,它成为瓶颈,trie可能确实有帮助.

在这个网站上已经提出并回答了这个问题:我在哪里可以找到基于Trie的标准地图实现?

这就是答案:https: //forums.oracle.com/forums/thread.jspa?messageID = 8877521