簡體   English   中英

將Arraylist作為值的Hashmap Android

[英]Hashmap with Arraylist as values Android

我正在開發一個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);
 }

您需要將Hashmap的值強制轉換為必需的type。

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

問題是我試圖獲取一個不存在的鍵的值,我這樣解決了它:

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