web-dev-qa-db-ja.com

Javaにトライはありますか?

可能性のある複製:
JavaでのTrieベースの標準マップ実装はどこにありますか?

JavaでTrieを使用したいのですが、使用できる実装はありますか? (探してみましたが、見つかりませんでした)。

32
Belgi

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

これは、通常、文字列を格納するように設計されているのに対し、Javaデータ構造がより一般的で、通常Object(等式とハッシュ演算を定義)を保持しているが、 Comparableオブジェクト(順序の定義)に制限されることがあります。CharSequenceは文字列に適していますが、「シンボルのシーケンス」には一般的な抽象化はありません。 Iterable他のタイプのシンボル。

ここで考慮すべきもう1つの点があります。Javaで従来のトライを実装しようとすると、JavaはUnicodeをサポートしているという事実にすぐに直面します。シンボルのサブセットへのトライの文字列、またはシンボルでインデックス付けされた配列に子ノードを格納する従来のアプローチを放棄するこれは、コアライブラリに含めるのに十分な汎用とは見なされない別の理由かもしれません独自のライブラリを実装するか、サードパーティのライブラリを使用するかどうかに注意してください。

47
erickson