Javaで辞書をどのように作成しますか?[閉まっている]


236

私は(物理的な本のように)辞書を実装しようとしています。単語とその意味のリストがあります。

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

キーを指定して、どのようにして値を見つけて返すことができますか?


24
さて、ユーザーではなく質問に集中するという精神で、私は再開することを投票します。とにかく、このユーザーはこれでコースを終了したと思います。;)これはstackoverflow.com/questions/1540673/…の複製ですが、私はここの答えの方が良いと思います。
Adi Inbar 2014年

回答:


313

あなたが欲しいでしょう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"));
動物の種類

1
@Cruncherこれも実装していますMap(javadocをチェックしてください)
arshajii

1
@arshajii辞書にあるすべての文字列を手動でマッピングしたか、手動ですべての単語の意味を保存していると思います。だから私の質問は、単語とその意味/定義をフェッチするために辞書のdb(ダンプ)ファイルのような方法があるので、各単語の意味を手動で追加することを避けることができます
Vighanesh Gursale

@VighaneshGursale実行中にデータ構造を構築するには、putメソッドを使用する必要があります。putコマンドは、ディスクからファイルを読み取り、それをメモリ(ram)に配置して、作業できるようにするものと考えてください。load autoでデータ構造としてロードしたいファイルがある場合は、java springを調べる必要がありますが、複雑です。
Dan Ciborowski-MSFT 2014年

5
ちなみに、実際には2回目に<String、String>を含める必要はありません。あなたはただすることができますMap<String, String> map = new HashMap<>();
Samuel Noyes

Hashtableよりも使用する方が好ましいConcurrentHashMapについて言及するのを忘れていました
Arsenius

80

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

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>();

これは正常に動作します。


3
dictionary["key"]動作しません-必要がありますdictionary.get("key")
arshajii

21
確かに

12

MapインターフェースHashMapのような実装を使用する


1
ソリューションへのリンクを歓迎しますが、それがなくても回答が役立つことを確認してください。リンクの周りにコンテキストを追加して、他のユーザーがそれが何であるか、なぜそこにあるのかを理解し、ページの最も関連性の高い部分を引用してくださいターゲットページが利用できない場合にリンクし直します。リンクに過ぎない回答は削除される場合があります。
FelixSFD 2017

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.