Java中有Trie吗? [复制]
Posted
技术标签:
【中文标题】Java中有Trie吗? [复制]【英文标题】:Is there a Trie in Java? [duplicate] 【发布时间】:2011-12-20 11:58:48 【问题描述】:可能重复:Where do I find a standard Trie based map implementation in Java?
我想在 Java 中使用 Trie,有我可以使用的实现吗? (我试着找了一个,但没有找到)。
【问题讨论】:
发现于superliminal.com superliminal.com/sources/TrieMap.java.html 【参考方案1】:核心 Java 库中没有 trie 数据结构。
这可能是因为尝试通常用于存储字符串,而 Java 数据结构更通用,通常包含任何 Object
(定义相等和哈希运算),尽管它们有时仅限于 Comparable
对象(定义订单)。尽管CharSequence
适用于字符串,但“符号序列”没有通用抽象,我想您可以对其他类型的符号使用Iterable
。
还有一点需要考虑:当尝试在 Java 中实现传统的 trie 时,您很快就会遇到 Java 支持 Unicode 的事实。要获得任何类型的空间效率,您必须将 trie 中的字符串限制为符号的某个子集,或者放弃将子节点存储在按符号索引的数组中的传统方法。这可能是为什么尝试被认为不够通用而无法包含在核心库中的另一个原因,并且如果您实现自己的库或使用第三方库,则需要注意这一点。
【讨论】:
以上是关于Java中有Trie吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章