方法put不适用于参数

时间:2016-04-28 20:55:54

标签: java arraylist hashmap

不太确定为什么我为put方法收到此错误。帮助将不胜感激。

此代码

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

产生

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 个答案:

答案 0 :(得分:1)

您正在尝试将String放入ArrayList。

您需要先将String放入列表中;

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

magicshopitems.put(list, itemlist);

旁注

在构建此类集合时,最好使用父接口类。

而不是

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

您可以

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