所以我必须在Java中使用HashMap,我需要从随机选取的ArrayList中填充一些值。
我正在填充ArrayList并且我的代码取一个随机数,n小于ArrayList的大小,我使用该随机值访问我的ArrayList中的一个点并将其存储到HashMap中。所以这是我的代码,如上所述添加到HashMap,
hash.put(index, strArr.get(n));
其中hash是HashMap的名称,index只是一个int值,strArr是我从中获取项目的字符串的ArrayList,而n是一个随机数。
这给了我一个NullPointerException,我和我的三个CS朋友都不知道为什么。请帮助,非常感谢正确方向的任何一步。
所以这只是因为我没有初始化我的HashMap。很抱歉,我刚刚开始在本周早些时候开始学习HashMaps。 :)
答案 0 :(得分:2)
NullPointerException意味着您正在尝试对非初始化对象进行操作。
这些是可能性:
答案 1 :(得分:0)
您是否已确定ArrayList
Class HashMap
Class的对象?
HashMap<Integer,ArrayList<Integer>> hash = new HashMap<Integer,ArrayList<Integer>>();
ArrayList<Integer> array= new ArrayList<Integer>();
array.add(30);
hash.put(1, array);
答案 2 :(得分:0)
第1点:您尚未初始化hashmap。
如果你没有初始化你的hashmap并且试图将元素放在hashmap中,你肯定会得到NPE。
第2点:你的strArr为空
同样的,如果你的strArr
是null
并且你正试图访问第N 位置的元素,那么肯定会得到NPE。
下面的代码可能对您有帮助。
Map<Integer,String> hashMap = new HashMap<Integer, String>();
List<String> strList = new ArrayList<String>();
strList.add("Apple");
strList.add("Mango");
for(int i=0;i<strList.size();i++)
{
hashMap.put(i, strList.get(i));
}