web-dev-qa-db-ja.com

Javaで辞書をどのように作成しますか?

私は(物理的な本のように)辞書を実装しようとしています。私は言葉とその意味のリストを持っています。

Javaが単語のリストとその意味をキー/値のペアとして格納するために提供するデータ構造/型は何ですか。

キーが与えられた場合、どうやって値を見つけて返すことができますか?

211
user1849819

Map<String, String>が欲しいでしょう。 Map インターフェースを実装するクラスには以下が含まれます(ただし、これらに限定されません)。

それぞれが特定の状況に合わせて設計/最適化されています(詳細についてはそれぞれの文書を参照してください)。 HashMapはおそらく最も一般的です。移動先のデフォルト.

例えば(HashMapを使う):

Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.println(map.get("dog"));
動物の種類
286
arshajii

これはテキスト(文字列)の辞書を作成します。

Map<String, String> dictionary = new HashMap<String, String>();

あなたはそれから:としてそれを使用します:

dictionary.put("key", "value");
String value = dictionary.get("key");

動作しますが、コンストラクタークラスを宣言クラスと同じにする必要があるというエラーが発生します。私はそれが親クラスから継承することを知っていますが、残念ながらそれは実行時にエラーを起こします。

Map<String, String> dictionary = new Map<String, String>();

これは正しく機能します。

71
SmartK8

Mapインターフェース および HashMap のような実装を使用してください。

11
Puyover

抽象クラス辞書があります

http://docs.Oracle.com/javase/6/docs/api/Java/util/Dictionary.html

しかしこれには実装が必要です。

JavaはHashtableと呼ばれる素晴らしい実装を提供してくれます。

http://docs.Oracle.com/javase/6/docs/api/Java/util/Hashtable.html

6
Cruncher