2011-11-02 7 views
28

可能性の重複:
Where do I find a standard Trie based map implementation in Java?私はJavaでトライを使用したいJavaでTrieはありますか?

、私が使用することができ、実装がありますか? (私は1つを探してみましたが、見つけられませんでした)。

+0

http://www.superliminal.com/にあります。 http://www.superliminal.com/sources/TrieMap.java.html –

+0

[あなたはGoogleで「trie java」を検索しましたか(http: //www.google.com/search?q=trie+java&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a)? – m0skit0

答えて

37

コアJavaライブラリには、データ構造はありません。

通常、試行は通常、文字列を格納するように設計されていますが、Javaデータ構造はより一般的です。Object(等価性とハッシュ演算の定義)を保持しますが、Comparableオブジェクト)。 CharSequenceは文字列には適していますが、他の種類のシンボルの場合はIterableで何かできると思いますが、 "シンボルのシーケンス"の一般的な抽象化はありません。

ここでもう一度考慮すべき点があります。Javaで従来のトライを実装しようとすると、JavaがUnicodeをサポートするという事実にすぐに直面します。任意の種類のスペース効率を得るためには、トライの文字列をシンボルのサブセットに制限するか、シンボルによってインデックスされた配列に子ノードを格納する従来の手法を放棄する必要があります。これは、試行がコアライブラリに含めるのに十分な汎用目的ではないもう一つの理由かもしれません。また、自分自身を実装したり、サードパーティのライブラリを使用しているかどうか注意するべきこともあります。

関連する問題