2016-11-21 4 views
2

私はJavaのテキストベースのゲームで作業しており、地図の辞書のようなPythonを使いたいと思っています.HashMapは実際には私のためには機能しません。pythonのものに似たjavaで辞書を作成するには?

Pythonでは、あなたは、このように辞書を定義することができます。

room_x = { "name": "X", 

"description":"Random description", 

"exits": {linked to another dictionary}, 

"items": list_of_players_items} 

は、Javaで可能な似たようですか?

ありがとうございます。複数の値をリンクするには

HashMap<String, String> hashMap = new HashMap<>(); //<key,value> both key and value are Strings 
hashMap.put("name", "X"); 
hashMap.put("description", "Random description"); 

+0

あなたはオブジェクト指向言語を使用して良い小さなオブジェクト指向プログラマのように、フィールドを持つクラスを作成していない任意の理由は? – Andreas

+0

新しい質問をする前に、特に一般的な仕事について、いくつかのGoogle検索を試してみてください。 – TigerhawkT3

+1

@ TigerhawkT3ちょうど私はHashMapソリューションを求めていませんでしたが、Pythonの辞書関数をjavaで複製する方法を尋ねていました(HashMapよりも優れたソリューションを希望しています)。 HashMapのソリューションが最良の方法であることが判明したということは、あなたがタグ付けしたものと同じ問題にはなりません。 – MarkwinVI

答えて

3

HashMapは、作業を行うことができます。あなたは

HashMap<String,HashMap<String, String>> linkedMap = new HashMap<>(); // key is string and value is HashMap<String, String> 
HashMap<String,String> itemsMap = new HashMap<>(); 
itemsMap.put("item1", "this is first item"); 
itemsMap.put("item2", "this is second item"); 
linkedMap.put("items", itemsMap); 

コード上記のように、キーと値のペアの種類を変更する必要があり、私が書いたちょうど簡単な例である、あなたはそれがStringである必要はありません、あなたのデータの実際の型を宣言する必要があります。
希望します。

0

HashMapまたはHashtableで十分です。どちらもキーと値のペアを持ち、keyはStringで、valueは任意のオブジェクトです。したがって、HashMap<String, Object> map = new HashMap<String, Object>()のように定義できます。

値は何でもかまいません(HashMapではHashtableでなくてもnull)。

ですから、「終了」を解決値として別のHashMapを持つことができます。list_of_players_items

「の項目を」解決値として{別の辞書にリンクされている}

List

Thisは、HashMapとHashtableに違いがあります。

サンプルコード:

List players = // some List 
HashMap exits = // some Map 
HashMap<String, Object> room_x = new HashMap<String, Object>(); 
map.put("name",name_string); 
map.put("desc",desc_string); 
mp.put("exits",exits); 
map.put("items",players); 
関連する問題