用于字符串匹配的Java数据结构

时间:2010-08-26 20:01:09

标签: java data-structures matching

我有一长串任意字符串,我想确定我的给定字符串“ABADCAFE”是否以列表中的任何字符串开头。是否有某个库类可以合理有效地为我做到这一点?

(我认为它很像正则表达式构建的状态机,但我不认为编写正则表达式是这里的方法 - 我的列表太长了)

2 个答案:

答案 0 :(得分:3)

您正在寻找的可能是Patricia Tree或Radix Tree:http://en.wikipedia.org/wiki/Radix_tree

Apache Commons Collections和Google Collections Library似乎具有相同的实现:http://code.google.com/p/patricia-trie/

答案 1 :(得分:0)

我不认为这里有一些神奇的算法会给你超级效率;毕竟,算法必须看一下每个字符串。构建一个有限状态机或基数树,或使用foreach - 它们在字符串数量上都是线性的,对于这个应用程序来说也是如此。