Java HashMap <string,arraylist <object [] =“”>&gt;如何添加一个空数组?</string,>

时间:2013-10-18 13:20:28

标签: java arraylist hashmap

我在我的应用程序中使用HashMap,有时我需要添加一个带有空值的键(String)(对象的emty数组列表)。但Netbeans 7.4说:

Exception in thread "main" java.lang.NullPointerException
    at test.Version.main(Version.java:35)
Java Result: 1

到此代码:

        HashMap<String, ArrayList<Object[]>> d = null;

        ArrayList<Object[]> a;
        a = new ArrayList<>();

        d.put("key1", a);

我不想使用MultiMap。有没有其他方法可以轻松解决?

4 个答案:

答案 0 :(得分:5)

您收到NullPointerException,因为dnull,并且您尝试通过调用d.put("key1", a)取消引用它。

您可以通过将d的初始化更改为

来解决此问题
HashMap<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();

现在d不为空,您可以使用HashMap的原生方法,例如d.put("key1", a)

答案 1 :(得分:4)

Map<String, List<Object[]>> d = new HashMap<String, List<Object[]>>;
List<Object[]> a = new ArrayList<Object[]>();
d.put("key1", a);

如果d为null,那么 - &gt; NullPointerException;)

答案 2 :(得分:2)

首先,如果没有创建它的实例,则无法调用map.put,您的地图仍为空。

您需要先实例化它:

Map<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();

然后:

d.put("key1", a);

答案 3 :(得分:2)

您写道:

HashMap<String, ArrayList<Object[]>> d = null;

然后你尝试将元素放到null:

d.put("key1", a);

您必须首先声明HashMap的实例:

 HashMap<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();