2012-04-13 2 views
0

Можно создать дубликат:
When traverse a HashMap, I get NullPointerExceptionA HashMap, я получить NullPointerException

Это мой код:

HashMap<String, HashSet<String>> map; 

....//I didn't write those code. 

System.out.println(map.entrySet().size()); // run util here is ok, I get the size of the map. 
for(Map.Entry<String, HashSet<String>> entry : map.entrySet()) {// here throw the exception 

} 

И я получаю исключение:

Исключение в потоке "main" java.lang.NullPointerException at key.test.EnwikiOutlink.main (EnwikiOutlink.java:68)

Объект карты имеет более 10 000 объектов карты, я запускаю его на серверной машине и не могу отлаживать. Но когда я уменьшаю размер этой карты (менее 10 000), программа работает нормально. В чем причина проблемы и решение? Благодаря!

+0

Итак, между циклами 'System.out' и for нет ничего? И вы определенно получаете NPE в этом для линии? – Thomas

ответ

0

HashMap допускает null в значениях. Поэтому в вашем HashMap, если HashSet имеет значение, вы получите NullPointerException. Убедитесь, что HashSet не равен.

+0

Вы имеете в виду запись (HashSet ) - null или HashSet - null? – janekey

+1

'HashSet ' может быть пустым. –

Смежные вопросы