Java中有Trie吗?

时间:2011-11-02 16:34:06

标签: java trie

  

可能重复:
  Where do I find a standard Trie based map implementation in Java?

我想在Java中使用Trie,是否有可以使用的实现? (我试过寻找一个,但我没有找到它。)

1 个答案:

答案 0 :(得分:46)

核心Java库中没有trie数据结构。

这可能是因为try通常用于存储字符串,而Java数据结构更通用,通常包含任何Object(定义相等和散列操作),尽管它们有时仅限于{{1对象(定义顺序)。尽管Comparable适用于字符串,但我认为你可以对CharSequence做其他类型的符号。

这是另一个要考虑的问题:当尝试在Java中实现传统的trie时,很快就会面临Java支持Unicode的事实。要获得任何类型的空间效率,必须将trie中的字符串限制为某些符号子集,或者放弃将子节点存储在由符号索引的数组中的传统方法。这可能是为什么尝试被认为不足以包含在核心库中的另一个原因,以及如果您实现自己的或使用第三方库需要注意的事项。