2017-01-03 30 views
1

intStringの配列をHashMapに入れたいと思います。これは可能ですか?それには適切な方法は何ですか?複数のデータ型を1つのHashMapに格納する

これは私のHashMapです:

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

    stringMap.put("Text","fish"); 
    stringMap.put("Diet","false"); 
    stringMap.put("CookingTime", "60"); 
    stringMap.put("OptionId", [7,8,8]); 

私は、この行が間違っている知っている - 私はHashMapに配列を格納する方法を教えてください。

stringMap.put("OptionId", [7,8,8]); 
+1

それは、配列を宣言するための構文ではありませんので。 –

+2

こんにちはこの配列を "7,8,8"のような文字列として入れ、次にこの文字列を配列に変換します。 String OptionId = "7,8,81" String [] yourArray = date.split( "[、]" "); –

+0

私はそれを知っている、私はどのようにHashMapで文字列と一緒にintの配列を配置するのかを知りたい – tahaDev

答えて

2

あなたはそれ以外の場合は、あなたが配列にそれらの値を返す関数が必要になります

someMap.put("OptionId", new int[]{7,8,8}); 

を行うことによって、Javaで配列をインスタンス化することができます。あなたのケースでは

:あなたは複数のデータ型のHashMapを作成したい場合は、あなたはその後、今トリッキーな部分は、あなたがある場合を除き

map.put("key1", "A String"); 
map.put("key2", new int[]{7,8,8}); 
map.put("key3", 123); 

にあなたが欲しいものを置くことができる

HashMap<String, Object> map = new HashMap<String, Object>(); 

を使用することができますどのようなものなのかわからないので、instanceofを使用して地図を解析する必要があります。どのタイプのオブジェクトがキーにあるのかわからない場合は、castそのタイプに変換できます。

if(map.get("key1") instanceof String) 
    String s = (String) map.get("key1"); // s = "A String" 

または

int[] arr = (int[]) map.get("key2"); // arr = {7,8,8} 
関連する問題