简体   繁体   English

将Arraylist作为值的Hashmap Android

[英]Hashmap with Arraylist as values Android

I am developing an android application and I am using a Hashmap to store some data the app works fine when I define the Arraylist this way 我正在开发一个android应用程序,并且我正在使用Hashmap存储一些数据,当我以这种方式定义Arraylist时,该应用程序可以正常工作

ArrayList<String> eventList = new ArrayList<>(); 

but the app crashes when I change it to: 但当我将其更改为:

ArrayList<String> eventList = hmap.get(date);

I need to know the reason why?. 我需要知道为什么吗? And here is the whole function in case you need to have a look 这是整个功能,以防您需要看一下

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);
 }

您需要将Hashmap的值强制转换为必需的type。

  ArrayList<String> eventList =(ArrayList<String>) hmap.get(date);

The problem was that I was trying to get a value of a key that does not exist, I solved it like this: 问题是我试图获取一个不存在的键的值,我这样解决了它:

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);
        } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM