2

Java で辞書を作成するには、どのデータ構造がより望ましいでしょうか? ツリーとハッシュテーブルのどちらが良いでしょうか?

4

4 に答える 4

5

地図。他には何もありません。並べ替えが必要な場合は、TreeMap を使用します。それ以外の場合: HashMap.

辞書は、(キーワード) 単語をその説明または翻訳にマップします。

于 2012-10-18T18:55:04.150 に答える
1

私は次のようなものを使用します

Map<String,Integer> dictionary = Collections.synchronizedMap(new TreeMap<String,Integer>());

String キーの値として Integer の代わりに、ドキュメント内のその単語のすべての位置を含むリストをおそらく保持できる Class オブジェクトを使用できます からキー値を簡単に取得するためのメソッドがありますTreeMap。以下は、イテレータを取得する方法ですTreeMap.

Set<Entry<String,Integer>> set = dictionary.entrySet();

Iterator<Entry<String,Integer>> entryItr = set.iterator();

Entry<String,Integer> entry = null;

while(entryItr.hasnext()){
entry = entryItr.next();
// Do whatever you want.
}
于 2012-10-18T18:59:19.493 に答える
0

特にメモリ効率とプレフィックス検索のために、Trie を使用します。githubの APL の下でマップ インターフェイスを実装する実装があります。

調べてみると、単純な地図よりもニーズに合っているかもしれません。

于 2012-10-19T09:34:24.583 に答える