我正在开发一个Android应用程序,我正在使用Hashmap存储一些数据,当我以这种方式定义Arraylist时应用程序正常工作
ArrayList<String> eventList = new ArrayList<>();
但是当我将其更改为:
时应用程序崩溃了ArrayList<String> eventList = hmap.get(date);
我需要知道原因吗? 这是整个功能,以防你需要看看
HashMap<Date, ArrayList<String>> hmap = new HashMap<>();
void eventMaker(String d, String ev) {
Date date = null;
try {
date = df.parse(d);
} catch (ParseException e) {
e.printStackTrace();
}
long epoch = date.getTime();
Event event = new Event(Color.RED,epoch,ev);
compactCalendar.addEvent(event);
ArrayList<String> eventList = new ArrayList<>();
eventList.add(ev);
hmap.put(date,eventList);
}
答案 0 :(得分:0)
您需要将Hashmap的值强制转换为所需类型。
ArrayList<String> eventList =(ArrayList<String>) hmap.get(date);
答案 1 :(得分:0)
问题是我试图得到一个不存在的密钥的值,我解决了这个问题:
if(!hmap.containsKey(date)){
ArrayList<String> eventList =new ArrayList<>();
eventList.add(ev);
hmap.put(date,eventList);
}
else{
ArrayList<String> eventList = hmap.get(date);
eventList.add(ev);
hmap.put(date,eventList);
}