2016-04-28 8 views
-2

putメソッドでこのエラーが発生する理由はわかりません。ヘルプをいただければ幸いです。putメソッドは引数には適用されません

このコード

HashMap<ArrayList<String>,ArrayList<Integer>> magicshopitems = new HashMap<ArrayList<String>,ArrayList<Integer>>(); 
magicshopitems.put("items", itemlist); 
magicshopitems.put("amount", itemlistamount); 

あなたはArrayListのに文字列を入れしようとしている

The method put(ArrayList<String>, ArrayList<Integer>) in the type HashMap<ArrayList<String>,ArrayList<Integer>> is not applicable for the arguments (String, ArrayList<String>) 
+1

'STRING'は' ArrayListの 'ではありません。 – rgettman

答えて

1

を生成します。

まず、文字列をリストに入れる必要があります。

ArrayList<String> list = new ArrayList<String>(); 
list.add("items"); 

magicshopitems.put(list, itemlist); 

側注

このようなコレクションをconstrcutingとき、親インターフェースクラスを使用するには良い習慣です。

代わりの

HashMap<ArrayList<String>,ArrayList<Integer>> magicshopitems = 
    new HashMap<ArrayList<String>,ArrayList<Integer>>(); 

あなたはかもしれない:

Map<List<String>, List<Integer>> magicshopitems = 
    new HashMap<List<String>, List<Integer>>(); 
+0

また、ハッシュマップを 'HashMap >' – Blorgbeard

+0

に変更してください。この問題はすべて解決されました。ありがとうございました。 – rhowell