/ / Java HashMap <String, ArrayList <Object [] >> como adicionar uma matriz vazia? - java, arraylist, hashmap

Java HashMap <String, ArrayList <Object [] >> como adicionar uma matriz vazia? - java, arraylist, hashmap

Estou usando o HashMap no meu aplicativo e, às vezes, preciso adicionar uma chave (String) com um valor nulo (lista de objetos emty array). Mas o Netbeans 7.4 diz:

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

para este código:

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

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

d.put("key1", a);

Eu não quero usar um MultiMap. Existe alguma outra maneira de resolvê-lo facilmente?

Respostas:

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

Se d for nulo, então -> NullPointerException;)


5 para resposta № 2

Você está recebendo um NullPointerException Porque d é nulle tenta de-referenciá-lo com sua chamada para d.put("key1", a).

Você pode corrigir isso alterando sua inicialização de d para

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

Agora isso d isn "t null, você pode usar os métodos nativos para HashMap, gostar d.put("key1", a).


2 para resposta № 3

Você não pode ligar map.put sem criar uma instância dele no início, seu mapa ainda é nulo.

Você precisa instanciar primeiro:

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

e depois:

d.put("key1", a);

2 para resposta № 4

Você escreveu:

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

e então você tenta colocar o elemento em um valor nulo:

d.put("key1", a);

Você deve primeiro declarar a instância do HashMap:

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