我想在 Java 中使用 Trie,有没有我可以使用的实现?(我试图寻找一个,但我没有找到它)。
问问题
52446 次
1 回答
58
核心 Java 库中没有 trie 数据结构。
这可能是因为尝试通常被设计用于存储字符串,而 Java 数据结构更通用,通常包含任何Object
(定义相等和散列操作),尽管它们有时仅限于 Comparable
对象(定义顺序)。“符号序列”没有通用的抽象,尽管CharSequence
它适用于字符串,我想你可以Iterable
对其他类型的符号做一些事情。
这里还有一点需要考虑:当尝试在 Java 中实现传统的 trie 时,您很快就会遇到 Java 支持 Unicode 的事实。要获得任何类型的空间效率,您必须将 trie 中的字符串限制为符号的某个子集,或者放弃将子节点存储在按符号索引的数组中的传统方法。这可能是为什么尝试被认为不够通用而不能包含在核心库中的另一个原因,如果您实现自己的库或使用第三方库,请注意这一点。
于 2011-11-02T16:36:24.790 回答